通过xml配置Spring事务时,绑定接口或具体是否合适 交易类?我在想我们应该有映射的接口 事务处理,但我从Spring文档中找到了这个: “Spring团队的建议是,你只需要注释具体的类 @Transactional注释“。
请分享您的想法。
答案 0 :(得分:3)
事务边界是实现细节,因此它们应该由实现而不是通过接口指定。
例如,假设在某些复杂的情况下,您需要对您的某个方法使用程序化事务管理(TransactionTemplate
)而不是@Transactional
。如果您在接口级别有@Transactional
,则无法进行此操作。
答案 1 :(得分:2)
接口是合同。交易性不是(通常)合同的一部分。这是一个实现细节。因此@Transactional属于实现类,而不属于接口。
答案 2 :(得分:0)
@Transactional 注释不是从接口继承的,因此如果您使用不同的代理方法(例如 proxy-target-class = true 或 aspectj) )您的真实方法不会是交易性的。
请参阅proxy-aop(用于标准事务注释) http://static.springsource.org/spring/docs/3.0.x/reference/aop.html#aop-understanding-aop-proxies