EJB3感性认识

     面向对象方法课留了个作业,使用EJB实现一个简单的东东,从而更深刻的体会EJB组件。
虽然J2EE学了不少,但正统的EJB一直没有怎么看。今天大体看了看EJB3.0,感觉
EJB3.0在易用方面的确有很大的改进。曾经以极高的复杂性的EJB,现在和Spring、Hibernate
这些轻量级的解决方案相比已经差不了哪去了,EJB在轻量化,所有的Bean都可以是POJO的,只
需要使用注解表明是Entity bean,Stateless/Stateful Session bean,Message-driven bean,
Remote/Local接口,不需要实现特定的接口。Java Persistence已经从EJB中分离出来,作为一
个独立的标准JPA,而Hibernate是JPA的一个实现。这样Entity bean成为了可以脱离容器的普通
的POJO,JPA像JDBC那样可以在普通的应用程序的持久化中被使用。
     EJB容器提供的基础性服务(声明性事物管理、安全、并发控制、JNDI等),使得受管的Bean受益于
这些服务的同时,这些Bean可以脱离容器而被测试,这在测试先行,敏捷开发流行的时代,尤为重要。
     EJB的资源管理为Bean进行了实例池化,这点感觉要比Spring依靠依赖注入的单例、原型等创建bean
相比具有更高的效率,像Stateless Session Bean、Message-Driven Bean都有若干个实例保存在池中,
可以同时相应多个请求,响应后在放入池中。而Stateful Session Bean则提供了钝化和激活操作,可
以在会话结束后钝化,将其状态保存在磁盘中,而在再次使用时,创建一个新的实例,将保存的状态拷
贝在这个新的实例中。这要比Spring简单的单例和原型要高效一些,当然随着JVM效率的提高,似乎对象
创建已经不太被看作是效率问题,像Web层的框架的应用控制器(Action)趋势是从单例到原型方式演进,
线程安全似乎更被重视。当然厂商对EJB容器的优化与直接Spring相比带来的优势是显然的。
     EJB与这些轻量级框架相比最大的优势是透明的分布式对象,这对于需要分布式的应用来说是最大的亮
点。分布式对象可以分布在不同的服务器上,从而使得应用程序具有很好的伸缩性。提供JDNI来查找定位
服务,虽然JDNI的lookup方式的定位服务没有依赖注入方式先进,但JDNI可以提供跨网络的服务定位。
     总体感觉EJB3和Spring等轻量级的解决方案相比,已经没有那么复杂的,EJB在轻量化,变得更易
用。Seam是个使用EJB3.0组合JSF的一站式的开发框架,整个的理念还很先进,不过入门门槛比较高。
对于使用EJB3来说Seam是个不错的选择。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值