对Banq大哥的"EJB3与EJB2架构对比"一文发表一些看法

你好,BANQ大哥,我看了你的"EJB3与EJB2架构对比",我觉的不是架构比较,只是从单纯使用角色和语法上或都是外在的一个表现方式上的一个比较,我觉不是从整个EJB2与EJB3整体系统底层架构上进行的比较,你在文章中说了:
  接口上的变化(EJB3中取掉了HOME接口)
  JNDI变化(EJB3中JNDI:sesssion bean类名/local或remote,如果EJB被打成EAR包,则是EAR包名/session bean类名/local或remote)
实体BEAN变成了简单的POJO外加一个persistencel.xml(位于jar包的META-INF下)文件作为实体BEAN使用的数据源及EntityManager对象的默认行为的配制,EJB3中引入了annotations(定义了实体关系及O/R映射)作为配制管理
  你还说最大的变化就是annotations替代了配制文件等等这些我觉的不是架构上的变化,我想知道EJB2与EJB3在体系结构上有没有变化,HOME接口是否彻底废掉了,还是JBOSS等容器底层实现了等,请BANQ大哥作以解释

楼主没有看透ejb3.0的精髓!

楼主看ejb的turioal有没有注意到和2.0的结构明显不同了!

不再是sb,eb,mb的结构了

二是sb,jpa,mb的结构!

这点就是ejb最大也是最合理的改动,把Persist独立出来,引入hb里面对象状态的模式来实现jpa,这样entityBean就不再是一个重量级的架构了,由于他提供了编程式实现,就基本和hibernate一样了,就是一个普通的persist封装,直接部署到tomcat里面。至于其他的组建ejb3.0还是不行,webservice,RMI,Security还是和ejb容器环境整合在一起。但是使用ejb的最大的吸引就是全局事务,这个是ejb做的最成功的地方,集中体现是在ejb系统上做一些权限验证,金融业务等会发现每个业务都不需要自己写事务代码!而且所有的业务流程都自动的被包括在事务边界里,安全性很高