EJB3。0开发环境:
myeclipse6+glassfish2
Plain Old Java Object (POJO)
EJB3。0介绍:
1、开发EJB3的大体步骤:
<!--[if !supportLists]-->1、 <!--[endif]-->开发业务接口代码,BEAN类,并编译
<!--[if !supportLists]-->2、 <!--[endif]-->提供部署描述符
<!--[if !supportLists]-->3、 <!--[endif]-->创建Ejb-jar文件,将代码和描述文件打包
<!--[if !supportLists]-->4、 <!--[endif]-->将Ejb-jar文件部署到服务器上
<!--[if !supportLists]-->5、 <!--[endif]-->查EJB容器,严整部署是否成功
<!--[if !supportLists]-->6、 <!--[endif]-->编写并执行客户端应用,测试EJB组件
2、术语集合:
1、Bean实例:POJO实例,基与Bean类生成的
2、业务接口:POJI接口,列出企业暴露的业务方法
3、部署描述符:XML文件,用与指定企业Bean组件服务的需求。
4、Ejb-jar文件:可以包含上面的文件,是ZIP格式存在的
5、供应尚专业部署符:用于指定EJB容器提供的服务。
1、是规范,不是产品,规范了开发企业级项目的规则,java平台有三个:
J2SE J2EE J2ME,JAVA EE是JAVA的企业版平台。
2、JAVA EE包含的内容:
规范:开发企业项目的规则
测试套件:为JAVA EE开发的产品,提供测试,通过发SUN的兼容认证。
3、JAVA EE技术:
EJB,JAX-MS,元数据,JNDI,JDBC,JTA,JMS,SERVLET,JSP,JSF,JCA, JAXP,JAXB,JAAS。
<!--[if !supportLists]-->1、 <!--[endif]-->是规范,不是产品
<!--[if !supportLists]-->2、 <!--[endif]-->定义了EJB组件和管理他们的服务器之间提供标准
<!--[if !supportLists]-->3、 <!--[endif]-->是javaee技术的龙骨
What is an Enterprise Bean?:
<!--[if !supportLists]-->1、 <!--[endif]-->是实现了EJB的技术的JAVA EE组件
<!--[if !supportLists]-->2、 <!--[endif]-->是封装了业务逻辑的服务器端组件,并可以发布到分布式多层环境中)
<!--[if !supportLists]-->3、 <!--[endif]-->简化了大型的分布是系统的开发
EJB类型:
<!--[if !supportLists]-->1、 <!--[endif]-->会话Bean(有状态/无状态Bean):对业务建模,完成某动作
A、相对存活短暂的对象
B、不能在多个客户见共享
C、不能表示数据库中的数据
<!--[if !supportLists]-->2、 <!--[endif]-->实体Bean:对业务数据建模,完成名词
<!--[if !supportLists]-->3、 <!--[endif]-->信息驱动Bean(MDB):类似会话Bean,处理业务的,但已发送信息为任务。
EJB3的编程风格:
推荐POJO风格的编程模型,但对会话BEAN和MDB可以,实体BEAN不可以。
在EJB3中实体BEAN没有改变,和EJB2中一样。但在EJB3中可以用JPA方法来POJO风格的编程。
会话BEAN的生命周期:
<!--[if !supportLists]-->1、 <!--[endif]-->无状态会话BEAN:
即服务的业务过程只需要一个方法就可以完成,不需要维护多个方法间的状态
如:音频/视频数据压宿等
<!--[if !supportLists]-->2、 <!--[endif]-->有状态会话BEAN:
即服务的业务过程能够延伸到多个方法或事务中,需要为客户保存状态信息
<!--[if !supportLists]-->3、 <!--[endif]-->有状态会话BEAN的不同点:
实现实例池:存储会话Bean实例。无状态BEAN很简单的存储,而有状态会话BEAN就需要考虑会话信息,即挂起和激活的过程—》导致IO瓶颈。
容器何时激活/挂起BEAN:
这个取决具体的EJB容器。
根据最近最少使用算法,挂起BEAN实力时调用@PrePassivate回调方法。可以释放资源,挂起时将把会话信息保存到持久化体中。激活BEAN:对已序列化的会话信息在从存储源中读到内存,借助序列化功能重构BEAN,可能调用@PostActivate回调方法,恢复挂起时释放的资源。销毁:客户调用@Reomve的方法或超时将销毁实力,执行@PreDestroy
除非EJB中打开了资源,否则不要使用注释了@PrePassivate和@PostActivate的回调方法。