我们开始学习EJB喽.一提到EJB大家可能就会想到,零配置.在EJB2的时候,配置很繁琐.在EJB3时,使用了POJO加Annotation.配
置和使用非常方便.大大提高了我们在开发中的速度.今天我们就来了解一下EJB3.
EJB类型:
Session bean
用于特定业务逻辑
由客户端调用,Session名称意味着在整个工作单元期间都可用,在服务器停止后销毁它可为任何应用逻辑功能进行建模.
Session
bean有这样两种状态:Stateful, 无需手动编码,在客户端调用时可自动保存bean状态信息.Stateless, 可通过java
rmi进行远程/本地调用,还可暴露成ws
Message-driven bean
同Session
Bean相似,也用来处理业务逻辑,不同之处在于客户端从不会直接调用消息驱动Bean.他是由发送到服务器的消息触发的,可用于在系统组件间进行异步消
息的发送. 典型的消息服务器有:IBM WebSphere MQ, SonicMQ, Oracle Advanced Queueing,and
TIBCO
Entity和JPA
持久化是自动将java对象中的数据存储到DB中的能力,EJB3中持久化由JPA管理.JPA使用
ORM技术自动持久化Java对象.
EJB3中,持久化供应商本质上就是支持JPA规范的ORM框架.
每种类型的bean用于特
定目的并可使用EJB服务的一个子集.Bean类型的真正目的是防止服务的交叉装配导致的超载.Session Bean和消息驱动Bean用户构建业务
逻
辑,他们驻留在容器中,由容器来进行管理.实体Bean用于对Model进行建模.持久化供应商是可插拔的.
我们前两天学习的JPA同
EJB3容器是完全分离的.业务逻辑的处理是由两个组件完成:session
bean和消息驱动bean.这两个组件都是容器负责管理,持久化对象被称为实体,他由持久化供应商通过实体管理器接口进行管理.
EntityManager
实
体不会持久化自身,需要实体管理器来完成持久化工作,EM会读取映射的元数据信息来执行持久化操作.
EJB3,要运行在EJB容器中,大
多的应用服务器都是支持的.如:JBOSS,WEBLOGIC.但这里要注意,我们前一阵一直使用的Tomcat是不支持的,不能在这里运行EBJ.因为
tomcat只是web容器,没有EJB容器.EJB的组件必须要部署到EJB容器中上才能使用.
EJB部署/运行:
①EJB
需要打成jar包部署到AS服务器上运行.Jar 可通过IDE的向导完成打包工作.
② 安装JBoss AS(不要含有中文和空格).
配置环境变量(JBOSS_HOME).在Eclipse下配置JBoss服务器以及启动、停止. JBoss AS服务器默认端口8080,端口配置在
${jboss_home}/server/default/deploy/jboss-web.deplo-yer/server.xml
这
个和我们前面接触到的Tomcat中的web应用程序的部署是不一样的,这个是热部署:不需要重启服务器就可部署(观察控制台内容).通过jmx查看部署
结果.
JNDI:java
naming directory interface
SLSB:
客户端并不关心SLSB的内部状态,SLSB
没有必要维护在两次调用中维护实例变量的值.
SFSB:
确保客户端设置bean的内部状态以及即使任意次方法调用数量还是保持不变.容器
保证这一目的要做两件幕后的事情.
首先,容器要保证客户端可以到达该bean.
其次,容器在你不需要手写代码的情况下维护bean的实例
变量.
EJB类编
程规则
至少有一个业务接口
必须是具体类.不能是final或抽象的.
必须有空构造
可以是其它
sessionbean或pojo的子类
@Stateless
public CustomerManagerBean
extends BaseManagerBean
implements
CustomerManager {
...
}
生命周期回调方法可以定义在bean类中或超类中.注解继承
需要受到限制,超类中@Stateless or
@Stateful注解在部署时将要被忽略.但定义的任何回调方法和资源注入都要被继承.业务方法名不能以ejb开头,可能会干扰ejb底层处理.必须定
义所有的方法为 public的,但不能是final或static的.在远程业务接口中的定义的参数和返回值类型必须实现java串行化接口.
会
话状态和Session bean类型
如果bean要维护会话状态,记住上次交流的结果,这是有状态的会话bean.这意味着bean会从方法调
用中存储数据到实例变量,并使用缓存的数据来处理下一次方法调用.
SLSB不维护任何状态,SFSB趋向于对多个步骤的工作流进行建模,SLSB
则趋向与对常规目的进行建模. SFSB典型案例就是购物车.
Bean的生命周期回调
session
bean有生命周期,意味着会有一系列状态的转变.客户端和bean都不负责bean实例何时创建,何时销毁,何时进行优化.这些行为都由容器进行管理.
bean
初始化时,会发生如下过程:
1.容器调用newInstance方法.
2.如果bean使用DI,所有依赖的资源、bean和环境组件都要注入进来.
配置数据源在JBossAS中:
1.xml文件名:{文件名}-ds.xml
2.放到${jboss_home}/server/${your server}/
deploy/下即可.
注:各数据库的参考文档在${jboss_home}/docs/jca/下.
数据源配置文件部署完之后,必须重启JBoss服务器. 启动后,在浏览器中可查看到数据源的JNDI名称.
客户端调用ejb有三种方式:
1.
同一jvm的本地接口调用
2. 通过rmi的远程接口调用
3.SLSB可做为web service调用
SLSB生命周期回调方法
1.
创建bean实例
2.DI资源(数据源)
3.放入到池中
4.从池中取出空闲的bean供客户端调用.
5.执行请求业务
6.
业务完成后,放置bean到就绪的池中.
7.需要的话,销毁bean.
SLSB通过少量的实例来处理实际的并发的访问.理论上可以有多个
@postContruct和@preDestroy方法.但很少这样做.生命周期回调方法不能有参数,而且不能抛出受检查的异常(运行时异常的子类).
这些方法主要用于在特定时刻定位或释放资源.
SFSB的性能考虑
1.高效使用SFSB
SFSB无疑提供了健壮的业务逻辑处理功能,
大多数EJB容器都提供了强大的集群功能,即使一个服务器崩溃后,仍可以有其它服务器来维护客户端状态,不会中断业务处理,要实现这一功能必须要维护会话
的状态,即SFSB.
2.正确选择session数据
不要在session当中存放大量数据,应该只存放重要的关键数据,比如我们只缓存
一个id值在session中.
3.钝化/删除bean
相关推荐
传智播客_EJB3.0视频教程网盘下载
传智播客_EJB3.0视频教程网盘下载,本教程仅供学习之用,请勿用于商用,一切后果自负。
EJB3.0笔记(传智播客_EJB3.0视频教程)
1.EJB3与spring spring与ejb功能相似,如果应用不需要分布式能力,确实e'mi'you
传智播客EJB教程用部署工具
传智播客EJB3.0教程里用到的用于部署EJB的XML文件。
传智播客——EJB
今天我们来一起学习EJB。EJB是一个用于分布式业务应用的标准服务端组件模型,EJB较Spring而言,它更适合于分布式的场合,实现最大程度的业务代码重用,EJB是一个重量级的开发框架。我们接下来就开始学习EJB······1. EJB中有三种bean:①会话bean ②实体bean ③消息驱动bean2. 会话bean分为无状态会话bean和有状态会话bean
传智播客ejb学习, EJB和Spring的比较及EJB3.0的运行环境
今天开始学习ejb,黎活明老师讲的,黎老师是国内ejb方面的权威,《EJB3.0入门经典》就是黎老师写的,EJB领域销量很好的一本书。黎老师讲了ejb的优点,或者说它的侧重点,它和Spring提供的服务很多都是相同的,它主要就是提供分布式服务,Spring是做不到的。分离出了业务层,软件功能改变,只需修改业务层,为后期软件维护提供了方便。业务功能共享。软件实现了最大程度的组件方面的重
传智播客 EJB3 学习笔记1
1 安装jboss (略)2 创建一个既能本地调用 又可以远程调用的 bean 引入jboss_home/client/下面的jarpublic interface HelloWorld { }public interface HelloWorldLocal extends HelloWorld {} @Stateless
读传智播客黎老师EJB视频随笔上
=================这都是我本人看视频写的,不需要你们能看懂===================== EJB ===============附录一:EJB3基本概念及发展前景a.ejb技术发展快10年了b.什么是EJBEnterprice JavaBeans是一个用于分布式业务应用的标准服务端组件模型。采用EnterpriceJavaBe
传智播客ejb学习,EJB中的三种bean及开发一个无状态会话bean
<br />今天继续学习ejb3.0,黎老师提到,ejb发展已经有十年了,现在国内ejb还不是很流行,学习它可能对刚开始找工作的人没什么用,不过可以了解他的原理,学习他的编程思想,更好的理解前面所学的内容。开拓知识面,站在一个更高的台阶去思考问题,ejb的发展前景会越来越好,他所占的市场份额是由分布式的应用在软件开发中的使用所决定的。黎老师主要讲了在jboss服务器上使用ejb3.0。<br /> EJB中的三种bean<br /> 1.会话bean(session bean)<br /> 负责
weblogic8/9/10的部署于应用
weblogic8i、weblogic9.2、weblogic10.3的安装步骤及部署及应用。很适合刚学习weblogic的同事。
传智播客ejb3.0教学ppt
传智播客黎活明老师的ejb3.0教学ppt
weblogic自学全套教程
近期学习weblogic 搜集到一些资料希望能帮助到同学们
ejb资料
NULL 博文链接:https://huanglei4.iteye.com/blog/1062717
传智播客 EJB3 学习笔记2
1数据源: 详细定义 MSSQLDS jdbc:sqlserver://localhost:1433;DatabaseName=EJB com.microsoft.sqlserver.jdbc.SQLServerDriver sa 123456 2 配置实体bean@SuppressWarnings("serial")@Entity@Table
java ejb3.0_传智播客ejb学习, EJB和Spring的比较及EJB3.0的运行环境
今天开始学习ejb,黎活明老师讲的,黎老师是国内ejb方面的权威,《EJB3.0入门经典》就是黎老师写的,EJB领域销量很好的一本书。黎老师讲了ejb的优点,或者说它的侧重点,它和Spring提供的服务很多都是相同的,它主要就是提供分布式服务,Spring是做不到的。分离出了业务层,软件功能改变,只需修改业务层,为后期软件维护提供了方便。业务功能共享。软件实现了最大程度的组件方面的重用。它前景还是...
读传智播客黎老师EJB视频随笔下
第一课、EJB3.0_下载安装与运行jbossa.下载ejb3.0,地址:http://www.jboss.org/jbosses/downloads/b.解压就是安装,最好别路径包含中文c.run.bat启动,后台http://localhost:8080/,默认配置server里面的defaultd.出错排忧,1)端口是否被占用 2)是否设置JAVA_HOME和ClassP
EJB3.0视频教程
传智播客最新推出:EJB3.0视频教程,黎活明老师倾心主讲,本视频配套书籍《EJB3.0入门经典》已经由清华大学出版社出版发行。 获得地址http://www.itcast.cn/itcast_static/EJBNEWS.htm
2036




被折叠的 条评论
为什么被折叠?



