Junior — Middle
How can ExecutorService be integrated and configured in a Spring-based application?
sobes.tech AI
Answer from AI
In Spring, you can use the @EnableAsync annotation and configure a ThreadPoolTaskExecutor bean for injecting and setting up an ExecutorService.
Example configuration:
@Configuration
@EnableAsync
public class AsyncConfig {
@Bean(name = "taskExecutor")
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(25);
executor.setThreadNamePrefix("MyExecutor-");
executor.initialize();
return executor;
}
}
Usage in a service:
@Service
public class MyService {
@Async("taskExecutor")
public void asyncMethod() {
// asynchronous logic
}
}
Thus, Spring manages the thread pool, and you can easily configure the parameters of the ExecutorService.