·背景
因为在之前的项目中一直在用EJB,有了一定的了解和应用基础。也通过实践体会到了EJB的强大之处。本篇博客小编详细介绍一下EJB的理论知识,并在接下来的时间里,整理EJB的具体应用系列博客。
·何为EJB
EJB即Enterprise Java Bean,称为java企业bean,是Java的核心代码。EJB是sun的javaEE服务器端组件模型,设计模型与核心应用是部署分布式应用程序。简单来说,就是把已经编写好的程序打包放到服务器上执行。
·EJB特性
能够重用,一次编写,到处运行
对服务端计算能够分而治之
减少了构建企业应用的时间
单线程构建
开发者不需要考虑代码是否线程安全
容器自动进行负载平衡,将请求发到不同的实例进行处理
·三种类型
1)EntityBean
实体bean是一个复杂的业务实体,代表数据库中存在的业务对象。它管理持久性数据的一个对象,有可能使用几个相关的Java对象,并可以通过主键实现唯一性。用@Entity注解,可以把某类指定为实体bean。可以分为容器管理和自我管理两种类型。
2)SessionBean
会话bean通常代表业务流程里面的操作,执行独立的,解除耦合的任务。可以根据对话状态分为有状态和无状态两种类型。后续博客中将对其进行详细介绍。
3)MessageBean
消息驱动bean为实现异步通信提供了一种比较直接的java消息服务更简单的方法。
如下图所示:
·三个对象
1)Remote(Local)接口
是远程接口的定义,定义一个远程接口的时候该接口必须继承javax.exj.EJBObject。之定义的远程接口中,可以定义业务方法列表,而这些方法应该抛出RemoteException异常,并且,在要实现的企业bean中有相应的实现。
2)Home(LocalHome)接口
是组件接口,通过该接口中定义的查找、创建、删除企业bean类实例的方法列表,可以创建一个EJBObject的对象,从而获得一个企业bean的实例的应用,然后通过远程接口,实现方法自定义的功能。
3)Bean类
EJB是服务端组件。企业bean才是最核心的。
·六个角色(简单了解)
EJB组件开发者(Enterpries Bean Provider)
应用组合者(Application Assembler)
部署者(Deployer)
EJB服务器提供者(EJB Server Provider)
EJB容器提供者(EJB Container Provider)
系统管理员(System Administrator)
·事务管理
在EJB中有两种使用事务的方式:
1)CMT(Container-ManagedTransaction)
2)BMT(Bean-ManagedTransaction)
在使用事务时,容器会通过bean语句调用底层事务系统,从而启动事务。使用@TransactionAttribute注解课指定事务属性。EJB常用的事务属性值有:required、requires_new、supports、NotSupported、never等。
·安全机制
基于角色的安全机制。可以通过在配置文件中定义映射的角色和用户组实现。