사용방법
- @EnableAsync 어노테이션 적용(Configuration class나 @SpringBootApplication 에다가 적용하면 됨)
- 비동기로 호출하고 싶은 메서드에 @Async 적용
- custom하게 설정을 구체적으로 할 수 있음
@Configuration @EnableAsync public class AsyncConfig extends AsyncConfigurerSupport { @Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(5); executor.setMaxPoolSize(30); executor.setQueueCapacity(50); executor.setThreadNamePrefix("DDAJA-ASYNC-"); executor.initialize(); return executor; } }
한계
- 마찬가지로 Spring에 의해 Proxy 방식으로 적용되는 형태라 스프링에서 관리되는 Bean에 호출할 때 비동기 메서드가 적용되고 직접 해당 클래스를 코드 상에서 생성하면 비동기가 적용되지 않음