一、A调用B,B调用C,B或者C加注解
@Component
public class Abc{
public void a(ApplyTaskOriginalDataCustomizeMapper applyTaskOriginalDataMapper){
b(applyTaskOriginalDataMapper);
}
public void b(ApplyTaskOriginalDataCustomizeMapper applyTaskOriginalDataMapper){
c(applyTaskOriginalDataMapper);
}
@Transactional(rollbackFor = Throwable.class)
public void c(ApplyTaskOriginalDataCustomizeMapper applyTaskOriginalDataMapper){
// mapper操作数据库。。。。。
throw new RuntimeException("异常!");
}
}
结论1:A调用B,B调用C,B或者C加注解【无效】
二、A调用B,B调用C,A加注解
@Component
public class Abc{
@Transactional(rollbackFor = Throwable.class)
public void a(ApplyTaskOriginalDataCustomizeMapper applyTaskOriginalDataMapper){
b(applyTaskOriginalDataMapper);
}
public void b(ApplyTaskOriginalDataCustomizeMapper applyTaskOriginalDataMapper){
c(applyTaskOriginalDataMapper);
}
public void c(ApplyTaskOriginalDataCustomizeMapper applyTaskOriginalDataMapper){
// mapper操作数据库。。。。。
throw new RuntimeException("异常!");
}
}
结论2:A调用B,B调用C,A加注解【有效】
三、A调用B,B调用C,类加注解
@Component
@Transactional(rollbackFor = Throwable.class)
public class Abc{
public void a(ApplyTaskOriginalDataCustomizeMapper applyTaskOriginalDataMapper){
b(applyTaskOriginalDataMapper);
}
public void b(ApplyTaskOriginalDataCustomizeMapper applyTaskOriginalDataMapper){
c(applyTaskOriginalDataMapper);
}
public void c(ApplyTaskOriginalDataCustomizeMapper applyTaskOriginalDataMapper){
// mapper操作数据库。。。。。
throw new RuntimeException("异常!");
}
}
结论3:A调用B,B调用C,类加注解【有效】
另注:springboot需要加@Component。如果直接new的,无效;
完。



