본문 바로가기

Spring

[Spring] 컨테이너에 빈을 등록하는 방법 (1. xml파일 2. java config 파일)

스프링 컨테이너는, 객체를 빈으로 등록한 후, IoC와 DI를 진행한다. 컨테이너에 빈으로 등록하는 방법은 2가지가 있는데, 아래와 같다.

 

추가적으로, 스프링 컨테이너는 기본적으로 빈을 싱글톤으로 관리한다.

(싱글톤 : 객체의 인스턴스가 오직 1개라는 뜻)

1. xml 파일

아래와 같이, main 아래 resource 패키지에 위치하게 된다.

 

아래와 같이 id와 class를 주면, bean을 등록할 수 있다.

property 설정 또한 가능하다.

 

2. java Config 파일

java config 클래스로 빈을 등록할 수 있다.

config 클래스로 빈을 등록하는 방법 1

  1. 자바 class 위에 @Configuration을 붙인다
  2. @Bean으로 객체를 빈으로 직접 등록한다

 

 

 

 

 

 

 

 

 

 

 

 

 

config 클래스로 빈을 등록하는 방법 2

  1. 자바 class 위에 @Configuration을 붙인다
  2. 자바 class 위에 @ComponentScan을 붙인다. @Component 어노테이션이 붙은 클래스를 빈으로 자동 등록한다. 기본은, config 클래스가 위치한 패키지 및 그 하위 패키지를 탐색한다. 괄호 안에 원하는 루트를 입력하면, 해당 패키지 루트 및 그 하위 패키지를 탐색하여 빈으로 등록한다.

 

빈 등록할 때 편한 ComponentScan만 쓰면 되는데, 왜 굳이 직접 등록을...?

내가 쓴 자바 코드에는 @Component를 붙일 수 있지만, JDBC와 같은 라이브러리의 코드에 @Component를 붙일 수 없기 때문에, 그럴 경우 config 파일에서 빈을 직접 등록하게 된다.