关于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(){
// ....
}
}