EJB 3.0 在 WAS V7 上开发部署的最佳实践
2010-01-04 00:00:00 来源:WEB开发网一般情况下,EJB 工程不使用这样的事务模型,让我们关注另外两种事务模型:
编程式事务模型 :
在编程式事务模型中,开发者不再面向连接而是面向事务进行开发。在 EJB 工程中这类事务模型体现为 Bean 管理的事务(Bean-Managed Transactions--BMT)。
我们可以如下开发来使用编程式事务模型:
清单 6. EJB 中使用编程式事务模型 UserTransaction txn = sessionCtx.getUserTransaction();
txn.begin();
try {
// Some operation
// ...
txn.commit();
} catch (Exception e) {
log.error(e);
txn.rollback();
throw e;
}
代码中 sessionCtx 是 Bean 的一个私有属性(field),可以通过注释 @Resource 来实现从容器注入。此外,我们还需要在 Bean 的实现类的定义中告诉容器该 Bean 的事务模式是 Bean-Managed 的(同样通过注释):
清单 7. BMT 事务声明
@TransactionManagement(TransactionManagementType.BEAN)
当然,这种事务模型也不局限于 BMT,它同样可以应用于容器内的 Servlet 或者 POJO,在容器中获取一个可操作的事务对象,我们使用如下的代码:
清单 8. Servlet 中使用编程式事务模型 InitialContext ctx = new InitialContext();
UserTransaction txn = (UserTransaction)ctx .lookup("java:comp/UserTransaction");
代码中所使用的 JNDI 名“java:comp/UserTransaction”是在 Websphere v5+ 的环境下的用法,如果你所开发的应用不是部署于这样的环境中,请参考该应用服务器的相关文档。
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››开发移动 Web Ajax 应用
- ››开发者眼中的iPhone与Android
- ››开发者或想使用的10个Android2.2新特性
更多精彩
赞助商链接