1.EJB的全称是EnterPrise JavaBeans,是java中的商业应用组件技术。EJB组件结构 是基于组件的分布式
计算结构,是分布式应用系统中的组件,它并不是一个产品,而是java服务器端服务框架的规范,软件厂商根
据它来实现EJB服务器。应用程序开发者可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问
题。
2.EJB规范定义开发和部署基于事务性,分布式对象应用程序的服务器端软件组件的体系结构。
3.企业组织可以构建他们自己的组件,或从第三方供应商购买组件,这些服务器端组件成为Enterprise Bean
,他们是EnterPrise JavaBean驻留的分布式对象,为网络中的客户机提供远程服务。
4.EJB作为企业级的数据访问/持久化标准在1999年作为J2EE规范的核心规范出现,极大的转变了java企业级开
发的模式,为java软件开发提供了一个良好的架构。
---EJB架构的目标
1.减轻直接操作底层数据库的工作量
2.为企业级开发引入了面向对象/面向服务的开发架构
3.数据对象生命周期的自动管理
4.分布式能力
5.集成/声明式的安全/事务管理
---传统EJB与新一代EJB之间的区别
--传统EJB
-Bean类,它是EJB组件的主要实现。
-EJB对象,客户根本不能够直接调用EJB实例
-远程接口,这些接口中的方法会暴露给远程客户
-本地接口,这些接口中的方法会暴露给本地客户
-Home接口,Home接口定义了用于创建,销毁,查找本地(或远程)EJB对象的若干方法
--新一代EJB
EJB3.0则简化了EJB组件的开发过程,改变了EJB的编程模型,但要清楚的是EJB技术本身并没有因此而
变味,它仍然是服务器端软件组件框架。EJB3.0变化的知识开发和部署模型,而它的核心框架和架构元力并没
有改变。
EJB3.0实现了以下几方面:
1)不在需要Home接口和对象接口
2)不在需要组件接口
3)使用java元数据注释
----EJB组件类型
-会话Bean
会话Bean用于实现业务逻辑,它分为有状态bean和无状态bean,每当客户端发出EJB调用请求时,容器
就会选择一个Session Bean来为客户端服务。会话Bean可以直接访问数据库,但更多的时候,它是通过实体
Bean实现数据访问。
-实体Bean
从名字上,我们就能猜到,实体bean代表真是物体的数据。在EJB3.0中,实体bean仅作为普通的java对
象来使用,它负责跟数据库进行对象与关系映射(O/R Mapping)。
-消息驱动Bean(MDB)
MDB是设计用来专门处理基于消息请求的组件。它能够收发异步JMS消息,并能轻易地与其他EJB交互:
它特别适合用于当一个业务执行的时间很长,而执行结果无需实时向用户反馈这样一个场合。
---EJB容器
EnterpriseJava Bean是在称作EJB容器的特殊环境中运行的EJB软件组件。Enterprise Bean不能在EJB容
器外部运行。EJB容器在运行时管理Enterprise Bean的各个方面,包括远程访问bean,安全性,持续,事务,
并行性和资源的访问与合用。
容器不允许客户机应用程序直接访问EnterpriseJava Bean。当客户机应用程序调用Enterprise Bean上的
远程方法时,容器首先拦截调用,以确保持续,事务和安全性都正确运用于客户机对bean执行的每一项操作。
---Enterprise Bean与容器交互的方式
1)回调方法:每个bean都会实现EnterpriseBean接口的子类型,该接口定义了一些方法,称为回调方法
。
2)JBContext:每个Bean都会得到一个EJBContext对象,它是对容器的直接引用。EJBContext接口提供
了与容器直接交互的方法。
3)java命名和目录接口(JNDI):JNDI是java平台的标准扩展,用于访问命名系统,如LDAP,NetWare
,文件系统等。
---EJB运行环境
EJB需要运行在EJB容器,每个javaEE应用服务器都含有EJB容器和Web容器。多以既可以运行EJB,又可以运行Web应用。目前支持EJB3.0的应用服务器有Jboss(4.2.x以上版本),Glassfish,Weblogic(10以上版本),Sun Application Server(9.0以上版本),Oracle Application Server(10g以上版本)和我们国内的apusic应用服务器。JBoss是使用做多的开源应用服务器,Weblogic是市场占有率坐高的商业应用服务器。