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
這樣的話就可以面試在循環調用的時候,就可以對事務無影響,

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