Java Config를 이용한 설정 - accidentlywoo/legacyVue GitHub Wiki
Java Config를 이용한 설정
Java Config와 어노테이션을 이용해 스프링에서 빈을 정의하고 DI하는 방법에 대해 알아보도록 한다.
1. JavaConfig형태의 설정파일의 내용을 이해할 수 있다.
2. @ComponentScan, @Component, @Autowired 어노테이션의 쓰임새에 대해 이해한다.
핵심 개념
- AnnotationConfigApplicationContext
- @Configuration
- @ComponentScan
- @Component
- @Autowired
Java config를 이용한 설정을 위한 어노테이션
- @Configuration : 스프링 설정 클래스를 선언하는 어노테이션
- @Bean : bean을 정의하는 어노테이션
- @ComponentScan : @Controller, @Service, @Repository, @Component 어노테이션이 붙은 클래스를 찾아 컨테이너에 등록
- @Component : 컴포넌트 스캔의 대상이 되는 어노테이션 중 하나로써 주로 유틸, 기타 지원 클래스에 붙이는 어노테이션
- @Autowired : 주입 대상이되는 bean을 컨테이너에 찾아 주입하는 어노테이션
@Configuration은 스프링 설정 클래스라는 의미를 가진다. JavaConfig로 설정을 할 클래스 위에는 @Configuration가 붙어 있어야 한다. ApplicationContext중에서 AnnotationConfigApplicationContext는 JavaConfig클래스를 일어들여 IoC와 DI를 적용하게 된다. 이때 설정파일 중에 @Bean이 붙어 있는 메소드들을 AnnotationConfigApplicationContext는 자동으로 실행하여 그 결과로 리턴하는 객체들을 기본적으로 싱글턴으로 관리하게 된다. Spring에서 사용하기에 알맞게 @Controller, @Service, @Repository, @Component 어노테이션이 붙어 있는 객체들은 ComponentScan을 이용해서 읽어들여 메모리에 올리고 DI를 주입하도록 하고, 이러한 어노테이션이 붙어 있지 않은 객체는 @Bean어노테이션을 이용하여 직접 생성해주는 방식으로 클래스들을 관리하면 편하다.