企业Bean指能够部署到分布式多层环境中的服务器端的软件组件。企业Bean组件有3种类型:会话Bean、实体Bean、消息驱动Bean(Message-Driven Bean, MDB)。
1Bean类:EJB组件的主要实现。Bean类含有业务逻辑实现。所有的会话Bean、实体Bean、消息驱动Bean都必须实现javax.ejb.EnterpriseBean接口。这一接口没有定义任何方法,实现了它的Java类便成为了Bean类。EJB规范针对会话Bean,实体Bean、消息驱动Bean分别提供了javax.ejb.EnterpriseBean接口的子接口,即javax.ejb.SessionBean、javax.ejb.EntityBean、javax.ejb.MessageDrivenBean。
2EJB对象:当客户希望使用Bean类生成的实例时,EJB容器会拦截调用,并委派给Bean实例。EJB容器(例如WebLogic)实际上是客户代码和EJB对象的中间人,以EJB对象形式存在的。在部署EJB组件期间,EJB容器会依据EJB组件的具体情况生成相应的EJB对象。如果EJB组件实现了本地接口,则EJB容器会生成javax.ejb.EJBLocalObject对象;如果EJB组件实现了远程接口,则EJB容器会生成javax.ejb.EJBObject对象。
3 远程接口:远程接口中的方法会暴露给远程客户。
4 本地接口:本地接口中的方法会暴露给本地客户。通过借助本地接口在运行EJB组件的同一JVM中使用到EJB对象,从而避免进行RMI-IIOP操作。
5 Home接口:Home接口定义了用于创建、销毁、查找本地(或远程)EJB对象的若干方法,作为EJB对象的生命周期接口存在。各个EJB组件需要提供相应的Home接口,所有的Home接口必须继承javax.ejb.EJBHome或javax.ejb.EJBLocalHome接口。在部署EJB组件期间,EJB容器会生成实现了上述接口的Home对象。
6 部署描述符:为了将中间件需求告知给EJB容器,企业Bean提供者需要再XML部署描述符中声明相应的中间件服务需求,比如,生命周期管理、事务控制、安全性服务等。EJB容器会分析部署描述符,并将相应的服务需求提供给EJB组件。部署描述符在启用隐式方式方面启动了作用。
7 厂商专有文件:EJB规范并未对差异性进行限制,比如配置负载均衡、集群、监控等。不同EJB服务器支持基于XML或文本的部署描述符,需要在EJB应用中包含厂商专有文件。
8Ejb-jar文件:将Bean类、Home接口、远程接口、部署描述符等内容打包成Ejb-jar文件。用于应用组装。