什么是EJB?
1. Enterprice JavaBeans(EJB)是一个用于分布式业务应用的标准服务端组件模型。
. 采用EJB架构编写的应用是可伸的、事务性的、多用户安全的。
. 采用EJB编写的应用可以部署在jboss、weblogic等服务器上(Tomcat只是web容器,不包含EJB容器)
. EJB用于编写MVC的业务层(Model)代码
. EJB提供了很多在企业开发中需要使用到的服务,如事务管理、安全、持久化、分布式等。因为这些服务由容器提供,无需我们自己开发。
. EJB和Spring的区别,EJB用于做分布式系统。如果项目不需要分布式部署,Spring是较好的选择

 将公共的业务部署到一台服务器上。这样不同的服务都可以访问相同的业务,实现组件级别的最大重用

ejb底层用rmi-iiop协议进行通信

 介绍一下常用的注解:
* javax.ejb.Stateless
* 指明此类是一个无状态的会话bean
* 使用实例池技术管理bean
*
* @Stateless(name="abc")
* 指明这个类的 jndi名字为abc
* 不指明默认为这个类的简单名称
* ****************************
*
* javax.ejb.Stateful
* 指明此类是一个有状态bean
* 为每一个用户保存其信息
* 使用激活管理bean
* 会话信息从内存保存到磁盘为钝化(序列化)
* 从磁盘还原到内存为激活(反序列化)
* 如果过期了,会自动清除掉磁盘上的信息
* ***************************
*
* javax.ejb.Remote
* 指明是一个远程接口
* 不写默认是本地接口(Local)
*********************************
*
* javax.ejb.Local
*
* 本地接口
* *****************************
*
* 当EJB和客户端同时运行在一台jvm内,优先使用本地接口
*
* javax.ejb.EJB
* 自动注入其他的EJB属性,和Spring的org.springframework.beans.factory.annotation.Autowired类似
**********************************
*@Resource(mappedName="java:jndi的名字") DataSource da;
*注入其他资源
*
* 如今Spring的广泛流行,EJB逐渐被替代,但EJB的经典永远值得我们学习
05-11 04:10