해결된 질문
작성
·
228
1
안녕하세요 토비님.
자동구성하는 방법에서 궁금한점이 있어 글드립니다.
@MyAutoConfiguration 과 같이 imports 를 통해 자동구성을 설정해줄때 Configuration 외에 Service 혹은 Repository(JPA) 등 여러 다른 Component 들이 있을때는 어떤방식으로 자동구성을 해줄수 있을까요?
단순히 생각했을때는 import 에 모두 기입하거나 @Import 의 방법이 생각이 들긴한데 너무 많은 정의가 있을경우에는 좋은방법이 있을까해서 질문드립니다.
@ComponentScan 을 사용하는 방법은 권장하지 않는다고 들었습니다. (아마 스캔에 따른 불명확함 때문이 아닌가 생각합니다)
답변 1
2
자동구성은 애플리케이션 컴포넌트(repository, service, controller 등)보다는 재사용이 가능하거나 필요한 기술 컴포넌트에 보통 적용합니다. 스프링 부트의 자동 구성의 예가 그렇죠.
@ComponentScan은 좋은 겁니다. 스캔을 하면 무슨 빈이 추가되는지 명확하게 보이지 않는다는 이유로 불평을 하는 사람도 있긴합니다만, 등록될 컴포넌트가 한 100개쯤 되면 @Import를 하든, @Configuration에 @Bean으로 직접 넣어서 정의를 하든, 그거 다 한 눈에 안보이기는 마찬가지입니다. 애플리케이션 빈을 추가할 때는 @ComponentScan이 최선입니다.
간단 명료하게 의견 주셔서 감사합니다.
덕분에 다시 한번 생각할 수 있는 계기가 되었습니다.
시간 내어 주셔서 또 새로운 지식 공유 해주시면 기쁜 마음으로 찾아뵙겠습니다
감사합니다.