[SPRING] 컨텍스트 : 구성 요소 스캔 방식의 프로그래밍 방식?
SPRING컨텍스트 : 구성 요소 스캔 방식의 프로그래밍 방식?
현재 AnnotationConfigApplicationContext 및 ClasspathXmlApplicationContext를 사용하여 혼합되어 있으며 부모 컨텍스트로 AnnotationConfigApplicationContext를 만듭니다. 하지만 AnnotationConfigApplicationContext에 정의 된 Bean이 ClasspathXmlApplicationContext에 정의 된 Bean에 잘 대처하지 못하는 것을 발견했습니다. 어쨌든 ClasspathXmlApplicationContext를 삭제하고 내 애플리케이션에서 AnnotationConfigApplicationContext 만 사용하게하고 싶습니다.
문제는,
어떤 생각?
해결법
-
==============================
1.AnnotationConfigApplicationContext 클래스가 배제 / 포함 필터를 제공하는 것처럼 보이지 않습니다. 클래스는 내부적으로 ClassPathBeanDefinitionScanner 인스턴스를 사용하여 addExcludeFilter 및 addIncludeFilter 메소드를 제공하는 주석을 검색합니다. 안타깝게도이 필드는 private이며 getter 메서드가 없으므로 AnnotationConfigApplicationContext를 확장하고 include 및 exclude 메서드를 추가하는 구현을 작성할 수 없습니다. 대신 AnnotationConfigApplicationContext에서 코드를 복사하고 누락 된 메소드를 추가해야 할 것입니다.
AnnotationConfigApplicationContext 클래스가 배제 / 포함 필터를 제공하는 것처럼 보이지 않습니다. 클래스는 내부적으로 ClassPathBeanDefinitionScanner 인스턴스를 사용하여 addExcludeFilter 및 addIncludeFilter 메소드를 제공하는 주석을 검색합니다. 안타깝게도이 필드는 private이며 getter 메서드가 없으므로 AnnotationConfigApplicationContext를 확장하고 include 및 exclude 메서드를 추가하는 구현을 작성할 수 없습니다. 대신 AnnotationConfigApplicationContext에서 코드를 복사하고 누락 된 메소드를 추가해야 할 것입니다.
public void addExcludeFilter(TypeFilter excludeFilter) { this.scanner.addExcludeFilter(excludeFilter); } public void addIncludeFilter(TypeFilter includeFilter) { this.scanner.addIncludeFilter(includeFilter); }
from https://stackoverflow.com/questions/5575470/doing-contextcomponent-scan-programatic-way by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring-boot + JPA EntityManager 삽입 실패 (0) | 2019.04.21 |
---|---|
[SPRING] 스프링 mvc 빈 배열을 기본값으로 사용 (0) | 2019.04.21 |
[SPRING] 스프링 생성시 기본 생성자가 필요합니까? (0) | 2019.04.20 |
[SPRING] Spring 부트 프로젝트에서 Hibernate가 LazyInitializationException을 던지지 않는다. (0) | 2019.04.20 |
[SPRING] lazily 초기화 된 CDI 빈을 만드는 방법은? (0) | 2019.04.20 |