通过xml配置Spring transaction时,绑定接口还是绑定具体的类进行事务处理好吗?我认为我们应该为事务处理映射接口,但我在Spring文档中发现了这一点:“Spring团队的建议是只使用@ transaction注释来注释具体的类”。
请分享你的想法。
发布于 2011-07-19 21:12:13
事务边界是实现细节,因此它们应该由实现而不是接口来指定。
例如,假设在某些复杂情况下,您的某个方法需要使用编程式事务管理(TransactionTemplate)而不是@Transactional。如果你在接口层有@Transactional,这是不可能的。
发布于 2011-07-19 21:11:36
接口是契约。事务性(通常)不是合同的一部分。这是一个实现细节。因此,@Transactional属于实现类,而不是接口。
发布于 2011-07-19 21:15:41
@Transactional注解不是从接口继承的,所以如果您使用不同的代理方法(例如proxy-target-class=true或aspectj),那么您真正的方法将不是事务性的。
参见proxy-aop (用于标准事务注释) http://static.springsource.org/spring/docs/3.0.x/reference/aop.html#aop-understanding-aop-proxies
https://stackoverflow.com/questions/6747461
复制相似问题