1.企業bean
(1)session bean(stateless和stateful session bean)
會話bean:從客戶端獲得EJB對象開始,然后調用EJB方法,直到客戶端釋放EJB對象為止。客戶端通過JNDI查找EJB對象。若每次會話查找同一對象時,則返回不同對象。
對象的狀態由它的實例變量的值決定的。
有狀態session bean:可以區分不同的客戶端,并保持他們的信息。主要是根據jsessionid來辨認不同的客戶端并維護他們的狀態。
stateful session bean 遠程調用的時候,客戶端得到的是一個客戶端代理對象,不同的客戶端獲得不同的實例(同時分配一個令牌)。通過令牌來區分不同的客戶端。每次查找服務器新創建一個給客戶端。
stateless session bean 不對其狀態做管理。不管是哪個客戶端,得到的對象可能都是同一個實例(單例方式管理)。不能區分是哪個客戶端。性能比stateful好。每次查找,服務器都返回同一個實例。
(2)message driven bean 基于JMS
2.實體bean
entity bean。EJB2的時候分為BMP(bean管理持久化實體bean---自己管理CRUD操作)和CMP(容器管理持久化實體bean--由容器管理CRUD操作)。
在EJB3中都是CMP。