springs事务注解失效

关于spring 事务注解失效

情景: 非事务方法A,调用事务方法B,事务方法B失效
原因: spring的事务传递机制,导致B方法失效。
解决办法: 代理。cglib动态增强。
也可以直接在A方法上加事务,这样会降低效率。

public class StudentServiceImpl implements StudentService, InitializingBean{
    /**自身引用*/
    private StudentService studentService;

    @Override
    public void afterPropertiesSet() throws Exception {
        this.studentService= BeanContainerFactory.getBeanContainer(
                StudentServiceImpl.class.getClassLoader()).getBean(
                        studentService.class);
    }

    @Override
    public void methodA(){
        // 调用事务方法B
        studentService.methodB();
    }
    @Override
    @Transactional
    public void methodB(){
        // ....
    }


}

你可能感兴趣的:(java)