·背景

因为在之前的项目中一直在用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消息服务更简单的方法。

如下图所示:

ee java 收费吗 java ee ejb_ee 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等。

·安全机制

基于角色的安全机制。可以通过在配置文件中定义映射的角色和用户组实现。