上年解決一個本類調用本類的方法,導致事務失效,今天小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
這樣的話就可以面試在循環調用的時候,就可以對事務無影響,