我曾经添加过@Transactional
所有 Spring 服务(类)的注释。然后我想:如果事务行为应该相同,我真的必须这样做吗? (当然,如果不应该的话,我们会添加@Transational
以及方法的其他参数。)我试图找到一些关于继承的有用信息@Transactional
, 阅读@Inherited
(看起来像@Transactional
is @Inherited
)。我尝试过rollbackFor
and noRollbackFor
对于以下示例,它看起来像@Transactional
in GenericService
为**工作doSmthSpecific
.
@Transactional
public abstract class GenericService {
public void doSmthGeneric() {
}
}
public class SpecificService extends GenericService {
public void doSmthSpecific() {
}
}
并且万一GenericService
我认为是一个界面。我想这更像是“如果我错了请纠正我”的问题,我想知道是否可以添加@Transactional
仅限超类,如果我在这里遗漏了一些东西。详细的解释(或此类解释的链接)将不胜感激。
引用docs http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html
您可以将 @Transactional 注释放在接口定义、接口上的方法、类定义或类上的公共方法之前...
他们还建议不要注释接口/接口方法。
Spring 建议您仅使用 @Transactional 注释来注释具体类(以及具体类的方法),而不是注释接口。您当然可以将 @Transactional 注释放在接口(或接口方法)上,但这仅在您使用基于接口的代理时按照您期望的方式工作。
后来他们继续解释说,当您使用基于类的代理或切面编织时,它不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)