스프링 : 컴포넌트 스캔, Autowired

Jaemin_Eun·2024년 11월 15일

컴포넌트 스캔을 사용하면 @Configuration이 붙은 설정정보도 전부 자동으로 등록되기 때문에 excludeFilters로 설정정보는 컴포넌트 스캔 대상에서 제외할 있음

컴포넌트 스캔은 @Component가 붙은 클래스를 스캔해서 빈으로 등록
이때 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자로 사용함
빈 이름을 직접 지정할 수도 있음

basepackages = 탐색시작 위치 지정. 해당 패키지의 하위 패키지를 모두 탐색, 지정하지 않으면 @ComponentScan이 붙은 클래스의 패키지가 시작위치

따라서 시작위치에 AppConfig같은 메인 설정정보 파일을 두고 @ComponentScan을 붙이고, basePackages 지정 생략

  • 스프링부트 사용시에는 프로젝트 시작 루트위에@SpringBootApplication을 붙이는게 관례

컴포넌트 스캔 대상 :
@Component
@Service : 비즈니스 로직에서 사용
@Repository : 스프링 데이터 접근 계층에서 사용, 데이터 계층의 예외를 스프링의 추상화된 예외로 변환해준다.
@Controller : 스프링 MVC 컨트롤러에서 사용
@Configuration : 스프링 설정 정보에서 사용

@Autowired : 자동으로 해당 스프링빈을 찾아서 의존관계 주입

0개의 댓글