[Spring] SpringIoC - Component Scan (excludeFilters, includeFilters)
ComponentScan 기능을 이용한 bean 등록 설정
MemberDAO인터페이스 생성
MemberDAOImpl 클래스 생성
인터페이스로 메소드를 강제화한 후 구현하여 사용하면 강제성이 부여 된다
또한 결합 관계를 느슨하게 만들 수 있다.
스프링 컨테이너가 스캐닝 기능을 이용하여 해당 클래스를 bean으로 등록할 수 있는 어노테이션을 설정한다.
- value 속성을 이용하면 bean의 id를 설정할 수 있으며, value는 생략 가능하다.
- 이름(id)를 설정하지 않으면 Class의 앞 글자를 소문자로 하여 bean을 생성한다.
- @Controller, @Service, @Repository와 동일한 기능을 가지지만 각 계층을 표현하는 어노테이션은
- 특정 용도에 맞는 부가적인 혜택이 있으니 계층별로 구분하여 사용하는 것이 좋다.
ContextConfiguration1 생성 (내용X)
Application 클래스
ComponentScan이란?
- base-package로 설정 된 하위 경로에 특정 어노테이션을 가지고 있는 클래스를 이용하여 bean으로 등록한다.
- @Component 어노테이션이 작성된 클래스를 인식하여 bean으로 만들게 되며
특수 목적에 따라 세부 기능을 제공하는 @Controller, @Service, @Repository, @Configuration 등을 인식한다.
이 때 basePackage를 등록하지 않으면 현 설정 클래스가 존재하는 패키지를 자동 basePackage로 설정한다.
재실행하면 bean으로 등록된 것 확인
excludeFilter로 스캐닝에서 제외할 타입을 기술하면 해당 타입은 스캐닝에서 제외한다.
1. 타입으로 설정
2. 어노테이션 종류로 설정
3. 표현식으로 설정
basePackages의 기본 설정 경로를 지정하고 useDefaultFilters를 false로 하면 모든 어노테이션을 스캔하지 않는다.
이 때 스캔할 대상 클래스만 따로 지정할 수도 있다.