image.png

TomcatServletWebServerFactory, DispatcherServlet은 유저 구성정보 빈에서 제외시켜야 됨

인프라 빈 구성 정보의 분리

1. ComponentScan에서 제외시키기

ComponentScan은 베이스 패키지라는 옵션을 별도로 설정하지 않으면 기본적으로 ComponentScan이 선언되어진 패키지를 기준으로 클래스들을 스캔함

패키지를 다른 데로 옮긴다면 컴포넌트 스캔 대상에서 제외 될 것

image.png

2. 스캔 대상은 아니더라도 구성 정보에 포함시키기

애플리케이션 구성정보의 시작점은 HellobootApplication의 @MySpringBootApplication인데 어떻게 이걸 기준으로 Config을 등록할 수 있을까? → @Import 를 사용

1 usage.png

@CoompnentScan을 이용해서 같은 패키지안에서 등록하던 거랑 차이점이 뭘까?

1. Config 클래스 분리

2. 패키지 분리

Configuration 클래스들은 나중에 자동 구성의 대상으로 삼기위해서 패키지를 분리함

3. 애너테이션 분리

AutoConfiguration 대상이 많아지면 메인 클래스에 붙이는 애너테이션의 메타에너테이션 Import가 점점 길어질 것 → 최상위 레벨의 애네테이션에서 이런 정보들이 나열되는 것은 좋지 않음