Spring - 컴포넌트 스캔 기본 대상

YUNU·2023년 8월 5일
0

스프링

목록 보기
17/33
post-thumbnail

🌱 Spring


🟦 컴포넌트 스캔 기본 대상

🔹 @Component -> 컴포넌트 스캔에서 사용

🔹 @Controller -> 스프링 MVC 컨트롤러에서 사용
스프링 MVC 컨트롤러로 인식

🔹 @Service -> 스프링 비즈니스 로직에서 사용

🔹 @Repository -> 스프링 데이터 접근 계층에서 사용
스프링 데이터 접근 계층으로 인식, 데이터 계층의 예외를 스프링 예외로 변환

🔹 @Configuration -> 스프링 설정 정보에서 사용
스프링 설정 정보로 인식, 스프링 빈이 싱글톤을 유지하도록 추가 처리

➡️ 컴포넌트 스캔으로 스프링 빈에 등록됨

어노테이션이 특정 어노테이션을 가지고 있는 것을 인식할 수 있는 것은 스프링이 지원하는 기능
자바 언어가 지원하는 기능 아님, 어노테이션에는 상속 관계라는 것이 없음


🟦 컴포넌트 스캔 탐색 시작 위치 지정

basePackes : 탐색할 패키지의 시작 위치 지정

@ComponentScan(
		basePackages = "com.example" // 해당 패키지를 포함해서 하위 패키지 모두 탐색
        // basePackages = {"com.example","com.example.service"} // 시작 위치 여러개 지정 가능
        // 지정하지 않으면 @ComponentScan이 붙은 설정 정보 클래스의 패키지가 시작 위치
)        

시작 위치를 지정하는 것 보다는 '설정 정보 클래스'를 프로젝트 최상단에 위치 시키는 것을 권장

ex) AppConfig.class를 com.example에 위치시킴


인프런 스프링 핵심 원리 - 기본편 (김영한) 참조

profile
DDeo99

0개의 댓글