对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大哥作以解释

体系结构上的变化关键在于Persist的独立!


这个是ejb3在设计上的走会正道的表现!

原先的entitybean是需要被包装在ejb容器里面,并且entity bean的环境是需要proxy365来动态载入,也就是说,用ejb你必须要使用entitybean,使用entitybean就需要把ejb所有的东西都加载上去。而ejb3的entitybean独立出来的,entitybean的PersistContext是可以通过JTA获取,也可以手动编写。很显然, ejb包装的其他服务不需要绑定entitybean.这个才是最大的诱惑!说句实话,我使用ejb就是因为3样东西1:全局事务 2:数据库锁 3:同步 ,但是我又不想把资源浪费在ejb容器加载组件上,但是现在ejb3可以做到这一点了,所以是值得一用的