Spring @Async异步执行详解

Spring @Async异步执行详解

基本用法

1
2
3
4
5
6
7
8
9
10
11
12
13
@Service
public class AsyncService {

@Async
public void asyncMethod() {
// 异步执行
}

@Async
public Future<String> asyncWithResult() {
return new AsyncResult<>("result");
}
}

启用异步

1
2
3
@EnableAsync
@Configuration
public class AsyncConfig {}

线程池

1
2
3
4
5
6
7
8
9
@Bean
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("async-");
return executor;
}

总结

@Async简化了异步编程。