由于真正业务核心在POJO中实现,因此,只要改一下applicationContext.xml配置,这样,调试时,前台就可以直接调用POJO,不必通过EJB,调试起来方便了,这有一个前提:他们认为调试EJB复杂,其实不然,在JBuilder中,结合Junit,测试EJB如同测试POJO一样方便,这是其他分支,不在此讨论。当部署使用时,再改一下applicationContext.xml配置,指引前台调用到EJB。
似乎很巧妙,这里有两个疑问,首先,指引到EJB的改变是什么时候做?持续集成前还是后,在前在后都有问题,这里不仔细分析。
这种表面巧妙的优点带来最大的问题是:粗粒度事务机制。所谓粗粒度事务机制,最早见于Petstore的WEB调用EJB Command模式,在这个帖子中有讨论。
下面以代码描述什么是粗粒度事务机制:
ejb方法:
public void updateUser(){
service.updateUser();
}
service是一个POJO,具体方法可能是更新两个表:
public void updateUser(){
updateTabel1();//更新table1
updateTable2(); //更新table2
}
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/