از نگارش JavaEE 6.0 به بعد جهت اهداف مختلف و سبکهای متنوع برنامه نویسی کلاسهای Bean مختلفی تعریف و ایجاد شده است. که اغلب برنامه نویسان و طراحان وب آگاهی کافی در رابطه با این نوع کلاسها نداشته و نمیدانند چه زمانی باید از آنها استفاده نمایند. در این مقاله سعی خواهیم کرد تفاوت های آنها را با هم بیان نموده و در آخر تجربیات شخصی خود را در رابطه با این نوع از کلاسهای Bean برای شما بازگو خواهم کرد.

کتابخانه JSF بصورت پایه همراه با کلاسهای Bean از نوع ManagedBean طراحی شده و تکنولوژی جدیدتر CDI (Context Dependency Inject) از نگارش JSF 2.0 به بعد به هسته مرکزی JSF اضافه شده است. CDI را می توان جایگزینی جهت کلاسهای نوع EJB در نظر گرفت. البته نظر شخصی من در این رابطه با این مفهوم تفاوت دارد. بهتر است قبل از هرچیزی به بیان تفاوت های و ویژگی های این نوع کلاسها بپردازیم.