@Async 使用手册
一、简介
@Async 是 Spring 框架提供的一个注解,用于实现方法的异步执行。当一个方法被 @Async 注解标注后,Spring 会在调用该方法时,将其放入线程池中异步执行,而不会阻塞当前线程。
二、使用步骤
1. 启用异步支持
在 Spring Boot 启动类上添加 @EnableAsync 注解,开启异步方法的支持。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableAsync
public class YourApplication {
public static void main(String[] args) {
SpringApplication.run(YourApplication.class, args);
}
}
2. 配置线程池(可选但推荐)
Spring 默认会使用一个简单的线程池,但为了更好地控制线程池的行为,建议自定义线程池。以下是一个示例:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
@Configuration
public class AsyncConfig {
@Bean(name = "asyncExecutor")
public Executor asyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(25