스프링 컨테이너는, 객체를 빈으로 등록한 후, IoC와 DI를 진행한다. 컨테이너에 빈으로 등록하는 방법은 2가지가 있는데, 아래와 같다.
추가적으로, 스프링 컨테이너는 기본적으로 빈을 싱글톤으로 관리한다.
(싱글톤 : 객체의 인스턴스가 오직 1개라는 뜻)
1. xml 파일
아래와 같이, main 아래 resource 패키지에 위치하게 된다.
아래와 같이 id와 class를 주면, bean을 등록할 수 있다.
property 설정 또한 가능하다.
2. java Config 파일
java config 클래스로 빈을 등록할 수 있다.
config 클래스로 빈을 등록하는 방법 1
- 자바 class 위에 @Configuration을 붙인다
- @Bean으로 객체를 빈으로 직접 등록한다
config 클래스로 빈을 등록하는 방법 2
- 자바 class 위에 @Configuration을 붙인다
- 자바 class 위에 @ComponentScan을 붙인다. @Component 어노테이션이 붙은 클래스를 빈으로 자동 등록한다. 기본은, config 클래스가 위치한 패키지 및 그 하위 패키지를 탐색한다. 괄호 안에 원하는 루트를 입력하면, 해당 패키지 루트 및 그 하위 패키지를 탐색하여 빈으로 등록한다.
빈 등록할 때 편한 ComponentScan만 쓰면 되는데, 왜 굳이 직접 등록을...?
내가 쓴 자바 코드에는 @Component를 붙일 수 있지만, JDBC와 같은 라이브러리의 코드에 @Component를 붙일 수 없기 때문에, 그럴 경우 config 파일에서 빈을 직접 등록하게 된다.