Spring

[Spring] 빈(Bean) 등록을 위한 어노테이션(Annotation) 설정 / @Configuration

bkuk 2022. 12. 27. 21:44

기존 Spring MVC에서는 xml을 활용해서 Bean 등록을 하고 있으나, 프로젝트의 규모가 커짐에 따라 사용하는 요소들을 xml에 등록하는 것이 상당히 번거로워서 어노테이션(Annotation, @)을 활용한 Bean 등록 방법이 탄생했다.

 

1. Spring Bean 이란?

Spring에서는 Spring의 DI Container에 의해 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부르며, 이러한 Bean들은 Spring을 구성하는 핵심 요소이다.

Spring Bean의 구성요소

  • class : Bean으로 등록할 java 클래스
  • id: Bean의 고유 식별자
  • scope : Bean을 생성하기 위한 방법( Singleton, prototype 등)
  • constructor-arg: Bean 생성 시 생성자의 매개변수로 전달되는 인자 값
  • property: Bean 생성 시 setter에 전달할 인자

 

아래와 같은 BeanConfig 클래스가 있고, 이를 스프링 컨테이너에 등록한다고 가정하자.

 

이 클래스를 빈으로 등록하기 위해서는 명시적으로 설정 클래스에서 @Bean 어노테이션을 사용해서 수동으로 스프링 컨테이너에 빈을 등록하는 방법이 있다. 설정 클래스는 다음과 같이 @Configuration 어노테이션을 클래스에 붙여주면 되는데, @Bean을 사용해 수동으로 빈을 등록해줄 때에는 메소드 이름으로 Bean 이름이 결정된다.