如下代码:
public class A{
@Transactional(rollbackFor = Exception.class)
public void test1(){
test2();
}
public void test2(){
//具体代码实现
}
}
需求:若test2中的方法出现异常,不影响主流程test1的代码。
方法(test2中新起一个线程,并在主流程中处理异常):
public class A{
@Transactional(rollbackFor = Exception.class)
public void test1(){
try{
test2();
}catch(Exception e){
e.printStackTrace();
}
}
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
public void test2(){
//具体代码实现
}
}