[Spring] 스프링 핵심 원리 - 기본편 (6) 컴포넌트 스캔
2024, Apr 14
섹션 6.컴포넌트 스캔
컴포넌트 스캔
@ComponentScan
- @Component 애노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록한다.
- 빈 이름 : 클래스 이름 앞글자를 소문자로 사용
- MemberServiceImpl -> memberServiceImpl
- 참고 : 스프링부트를 사용하면
@SpringBootApplication
안에 이미 @ComponentScan이 들어있음
@ComponentScan(
// 탐색할 패키지 지정
basePackages = "hello.core.member",
// 제외 필터
excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)
)
- basePackages : 탐색할 패키지 지정
- 지정하지않으면 Config 파일의 패키지 경로
- 권장하는 방법 : 설정하지 않고, 설정 정보를 프로젝트 최상단에 둠
- excludeFilters : @Configuration이 붙은 클래스는 제외할 수 있음
컴포넌트 스캔 기본 대상
- @Component
- @Controller : 스프링 MVC 컨트롤러로 인식
- @Service : 비즈니스 로직이겠거늘
- @Repository : 스프링 데이터 접근 계층으로 인식, 데이터 계층의 예외를 스프링 예외로 변환해준다.
- @Configuration : 스프링 설정 정보, 스프링 빈이 싱글톤을 유지하도록 추가 처리
AutoWired 의존관계 자동 주입
@Autowired
- 생성자에 애노테이션을 지정하면, 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 주입함