spring 事务类中方法循环调用

上年解决一个本类调用本类的方法,导致事务失效,今天小G想到这个问题,然后看下以前的代码,然后写下,记录下,事务失效其实除特殊情况下,比如方法需要save,update,还有运行异常上抛出等限制外,其实还有一个大家都不注意,就是如果方法内部再次调用内部方法,事务也是可能要无效


@Service("CService ")
public class CService  implements CService {
    private CService   self;
    @Autowired
    private ApplicationContext context;
        @PostConstruct
    private void setSelf() {
        self = context.getBean(CService.class);
    }
      @Override
    public void update() throws Exception {
    self .update1()
    }
        @Override
    public void update1() throws Exception {
    }

在这里插入图片描述

先把ApplicationContext注解到该类中,然后使用@PostConstruct注解,该注解容器启动的时候初始化的启动该方法,以后就不会在进行执行,执行优先级顺序:Constructor >> @Autowired >> @PostConstruct
这样的话就可以面试在循环调用的时候,就可以对事务无影响,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章