[SPRING] 봄 부팅. 어노테이션으로 TaskExecutor를 만드는 방법?
SPRING봄 부팅. 어노테이션으로 TaskExecutor를 만드는 방법?
비동기 적으로 실행해야하는 메소드 중 하나를 사용하여 Spring Boot 애플리케이션에서 @Service 클래스를 작성했습니다. 메서드를 읽으려면 @Async 주석을 달고 TaskExecutor 빈을 실행해야합니다. 하지만 스프링 매뉴얼 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html XML 설정없이 Annotation으로 TaskExecutor를 실행하는 방법에 대한 정보 나 예제를 찾지 못했습니다. 주석없이 XML없이 Spring Boot에서 TaskExecutor 빈을 생성 할 수 있습니까? 여기 내 서비스 클래스 :
@Service
public class CatalogPageServiceImpl implements CatalogPageService {
@Override
public void processPagesList(List<CatalogPage> catalogPageList) {
for (CatalogPage catalogPage:catalogPageList){
processPage(catalogPage);
}
}
@Override
@Async("locationPageExecutor")
public void processPage(CatalogPage catalogPage) {
System.out.println("print from Async method "+catalogPage.getUrl());
}
}
해결법
-
==============================
1.스프링 부트 애플리케이션 클래스에 @Bean 메소드를 추가하십시오.
스프링 부트 애플리케이션 클래스에 @Bean 메소드를 추가하십시오.
@SpringBootApplication @EnableAsync public class MySpringBootApp { @Bean public TaskExecutor taskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(5); executor.setMaxPoolSize(10); executor.setQueueCapacity(25); return executor; } public static void main(String[] args) { // ... } }
XML 대신 Java config를 사용하여 Spring을 설정하는 방법에 대한 Spring Framework 참조 문서의 Java 기반 컨테이너 구성을 참조하십시오.
@SpringBootApplication에는 @Configuration이 이미 포함되어 있으므로 @Configuration을 클래스에 추가 할 필요가 없습니다.
-
==============================
2.우선 - 규칙을 살펴 보겠습니다. @Async에는 두 가지 제한 사항이 있습니다.
우선 - 규칙을 살펴 보겠습니다. @Async에는 두 가지 제한 사항이 있습니다.
따라서 processPage () 메소드는 별도의 클래스에 있어야합니다.
from https://stackoverflow.com/questions/38370063/spring-boot-how-to-create-taskexecutor-with-annotation by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 데이터 JPA - 주입이 실패합니다 - BeanCreationException : 필드를 자동 줄 바꿈 할 수 없습니다. (0) | 2019.03.19 |
---|---|
[SPRING] Spring 캐시 가능 대 CachePut? (0) | 2019.03.19 |
[SPRING] Spring MVC에서 세션 타임 아웃 설정하기 (0) | 2019.03.19 |
[SPRING] CDI @Produces 주석에 해당하는 Spring은 무엇입니까? (0) | 2019.03.19 |
[SPRING] 스프링 부트 애플리케이션은 org.springframework.boot 패키지를 해석 할 수 없다. (0) | 2019.03.19 |