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에서 찾아와서 사용할수 있게 해주는 역활을 한다.
'SpringBoot' 카테고리의 다른 글
11월 13일 SpringBoot ComponentScan의 동작방법 (0) | 2022.11.14 |
---|---|
11월 10일 SpringBoot Config파일 (0) | 2022.11.11 |
11월 8일 SpringBoot 스프링에서 싱글톤이 유지되는 원리 (0) | 2022.11.09 |
11월 7일 SpringBoot 스프링 싱글톤의 문제점 (0) | 2022.11.08 |
11월 3일 SpringBoot 스프링의 싱글톤 구현 (0) | 2022.11.04 |