@Service
class A impl AA{
@Autowired
private B b;
@Transactional
private void a(){
b.sync_1();
b.sync_2();
///sync_2会执行,sync_1不执行
}
}
@Service
class B impl BB{
@Autowired
private EDao eDao;
@Async
public void sync_1(){
eDao.insert();
}
@Async
public void sync_2(){
System.out.print("sync2");
}
}
人工置顶。。。。
你需要配置异步执行。创建一个配置类实现AsyncConfigurer。
@Configuration
@EnableAsync
public class SpringAsyncConfigurer implements AsyncConfigurer {
@Override
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setQueueCapacity(20);
executor.setThreadNamePrefix("MyExecutor-");
executor.initialize();
return executor;
}
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return null;
}
}