1. 程式人生 > >Spring的Service調用本類方法聲明式事務無效的解決方案

Spring的Service調用本類方法聲明式事務無效的解決方案

{} 解決 ostc oid color wire ont spa 出了

示例:

class Test{
    public void a(){
        b();
    }

    @Transactional
    pubic void b(){}
}
// 此時b方法註解聲明式事務是無效的

解決方案:

通過本類實例來調用,代碼如下

class Test{

    @Autowire
    private ApplicationContext context;

    private Test self;

    @PostConstruct
    private void setSelf(){
        self = context.getBean(Test.class
); } public void a(){ self.b(); // 通過本類實例調用就生效了 } @Transactional pubic void b(){} } // 我試圖通過Autowire直接註解Test到Test,報出了錯誤,所以采用了從容器獲取實例的方式。

Spring的Service調用本類方法聲明式事務無效的解決方案