@Override
public void updateSalaries(float factor)
{
initializeTransaction();
// Actual business code...
commitTransaction();
}
不幸的是,事务管理应该更加透明:这是开发人员在编写业务方法时不应该关心的。
因此,一些方法来“装饰”这些商业方法将是很好的,但我想不出一个可能的方法来做到这一点。
我想到的另一个可能的解决方案是在一个中央DataAccessBean
类中处理它,在这个类中,我将在@PostConstruct
上启动事务,并在@PreDestroy
上提交事务:
@Stateless
public class DataAccessBean implements IDataAccessBean
{
@PostConstruct
public void initializeTransaction() { /* ... */ }
@PreDestroy
public void endTransaction() { /* ... */ }
@Override
public <T implements Serializable> T getObjectById(
Class<T> objectType, Object key) { /* ... */ }
@Override
public void saveObject(Serializable object) { /* ... */ }
}
谢谢你的建议。
您需要的是由Java事务API(JTA)解决的。来自JEE6教程(第八部分-第42章):
Java事务API(JTA)允许应用程序访问amanner中独立于特殊实现的事务。JTA提供了transactionmanager与分布式事务系统中涉及的各方之间的标准Java接口:事务应用程序、Java EE服务器和控制对事务所产生的共享资源的访问的Manager。
您希望使用容器管理的事务。在这个策略中,您只需要用适当的事务属性修饰bean/方法,即:
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void myMethod() {
...
}
10.5. 声明式事务管理 大多数Spring用户选择声明式事务管理。这是对应用代码影响最小的选择,因此也最符合非侵入式轻量级容器的理念。 Spring的声明式事务管理是通过Spring AOP实现的,因为事务方面的代码与Spring绑定并以一种样板式风格使用,不过尽管如此,你一般并不需要理解AOP概念就可以有效地使用Spirng的声明式事务管理。 从考虑EJB CMT和Spring声明式事务管理
问题内容: 我将文件的属性(大小,更新时间…)存储在数据库中。因此,问题在于如何管理数据库和文件的事务。 在Java EE环境中,JTA只能管理数据库事务。万一数据库更新成功但文件操作失败,是否应该为此编写文件回滚方法?此外,EJB容器中的文件操作违反了EJB规范。 你怎么看? 问题答案: 理想情况下,对外部资源(例如文件系统)的访问应通过 JCA连接器进行 。尽管围绕此讨论的文章很多,但我从未找
一、透明代理 使用透明代理时,流量将重定向到网络层的代理中,而无需任何客户端配置。这使得透明代理非常适合那些您无法更改客户端行为的情况-代理不兼容的移动应用程序是一个常见示例。 要设置透明代理,我们需要两个新组件。第一种是重定向机制,可以透明地将发往Internet上服务器的TCP连接重新路由到侦听代理服务器。这通常采用与代理服务器位于同一主机上的防火墙的形式 -Linux上的iptables或O
本文向大家介绍SpringMVC+MyBatis声明式事务管理,包括了SpringMVC+MyBatis声明式事务管理的使用技巧和注意事项,需要的朋友参考一下 采用的基本搭建环境:SpringMVC、MyBatis、MySQL、tomcat Spring事务管理分解了传统的全局事务管理和本地事务管理的劣势,使得在任何环境中都可以使用统一的事务管理模型,你可以写一次代码,然后在不同的
我正在编写一个可视化洞穴的OpenGL程序,所以当我可视化地表地形时,我希望它是透明的,这样你就可以看到下面的洞穴了。我假设我可以将来自数字高程模型的数据归一化为一个网格,该网格以规则的间距对准x/z轴,并将每个网格单元格渲染为两个三角形。使用对齐的网格,我可以避免在应用画家的算法时进行排序的成本(以确保适当的透明度效果);相反,我可以逐行呈现单元格,从最远的行和每行最远的单元格开始。 这一切都很
本文向大家介绍spring声明式事务管理解析,包括了spring声明式事务管理解析的使用技巧和注意事项,需要的朋友参考一下 前沿:通过对spring事务管理有了比较深入学习,本文将不做实例,而是指定具体的类和配置文件进行讲解。 本文内容: 1、了解什么是声明式事务? 2、声明式事务管理分别有哪几种? 3、这几种事务管理之间的区别是什么? 一、什么是声明式事务? 声明式事务(decl