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