본문 바로가기

SpringBoot

11월 9일 SpringBoot AutoWired 사용

appConfig.xml에서 @ConponentScan 어노테이션을 사용한 Container 등록

 

기존 AppConfig에서

@Configuration을 선언하고 각 Bean을 @Bean으로 설정하였었는데

 

이번에는

@Configuration을 선언하고 그 밑에 @ComponentScan을 선언한뒤 따로 @Bean가 적힌 각 메소드를 명시하지 않는다.

@ComponentScan은 @Configuration이 선언되어 컨테이너를 만들때

다른 @Component가 선언되어있는 class를 찾는다.

 

이 @Component는 기존 AppConfig에서 @Bean을 명시한 메소드로 bean을 등록하던 객체를 @Bean대신 등록할 class에 붙여주게 된다.

 

그럼 @Component로 객체가 생성은 되는데 AppConfig에서 각 메소드를 생성하면서 해주었던 DI 의존성주입이 처리되는 방식이 조금 다른데

 

이때 @Autowired를 사용하게 된다.

@Autowired 는 DI가 필요한 부분에 넣어주는 어노테이션으로 거기에 필요한 DI를 컨테이너에서 찾아서 사용할 수 있게 해준다.

 

원리는 @ComponentScan 으로 @Component가 붙은 class들을 bean으로 등록하고 container에서 관리하게 된다.

@Autowired는 @Autowired를 사용하여 객체를 불러와서 사용하는 class에서 요구하는 타입(인터페이스)에 해당하는 bean을 container에서 찾아와서 사용할수 있게 해주는 역활을 한다.