* 해당 내용은 스프링 핵심원리 기본편 - 인프런 강의를 기반으로 정리합니다
스프링 핵심 원리 이해4 - 컴포넌트 스캔
지금까지 빈을 등록한 방법은 @Bean이나 XML의 <bean>이었고, 이번에는 @ComponentScan을 통한 방법을 알아본다.
@ComponentScan
@ComponentScan → @Compontent 가 붙은 클래스를 스캔해서 스프링 빈으로 등록.
@Autowired → 의존관계 자동 주입
탐색 위치와 기본 스캔 대상
@ComponentScan( -- ) 괄호 안에 적어서 지정 가능한 옵션들
basePackages → 탐색할 패키지의 시작 위치 지정. 이 패키지를 포함해서 하위 패키지를 모두 탐색한다.
권장하는 방법 → 프로젝트 최상단에 AppConfig같은 메인 정보를 두고, 그냥 추가적인 옵션 지정 X
필터
@Component ( -- ) 괄호 안에서 지정 가능하며,
includeFilters → 컴포넌트 스캔 대상을 추가로 지정
excludeFilters → 컴포넌트 스캔에서 제외할 대상 지정
중복등록과 충돌
수동 빈 등록시 우선권을 갖지만, 현실적으로는 이러한 내용들이 꼬여서 만들어지는 경우가 대부분이다.
그렇게 되면 잡기 어려운 버그, 애매한 버그가 만들어진다.
따라서 최근 스프링 부트에서는 수동과 자동빈에서 충졸이 발생하면 에러가 나도록 수정했다.
스프링의 오류메시지가 확실히 친절하다고 느껴지는거 같다. 오랜기간동안 사용되어서 그런듯.
개인적으로 ReactNative 개발 (스캔온 어플리케이션)을 진행할 때 오류메시지가 React 보다 명확하지 않아서 처음에 좀 어려워했었는데, 스프링의 경우에는 이런 오류메시지가 잘 나와서 문제를 처음에 해결할 때 많은 도움이 될 것 같다.
어설픈 추상화보다는 오히려 명확히 작성하는 코드가 더 좋은 코드이다!
'프로그래밍 공부 > Spring' 카테고리의 다른 글
스프링 스터디 기본편 -6 (0) | 2021.04.26 |
---|---|
스프링 스터디 기본편 -5 (0) | 2021.04.25 |
스프링 스터디 기본편 -4 (0) | 2021.04.22 |
스프링 스터디 기본편 -3 (0) | 2021.04.22 |
스프링 스터디 기본편 -2 (0) | 2021.04.20 |