@Bean이란?
@Bean은 스프링의 주요 어노테이션 중 하나로, 개별 빈을 정의하고 생성하는 데 사용됩니다. @Bean 어노테이션은 @Configuration이 붙은 설정 클래스에서 메서드에 적용되며, 해당 메서드가 반환하는 객체를 스프링 컨테이너에서 관리하는 빈으로 등록합니다. 이렇게 생성된 빈은 스프링 컨테이너에서 의존성 주입을 통해 다른 빈들에 주입될 수 있습니다.
@Bean 예제
package com.example.demo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyService(myRepository());
}
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}
위 예제에서 AppConfig 클래스는 @Configuration 어노테이션으로 표시되어 스프링 설정 클래스임을 나타냅니다. 이 설정 클래스에는 myService()와 myRepository()라는 두 개의 메서드가 있으며, 각 메서드에 @Bean 어노테이션이 적용되어 있습니다. myService() 메서드는 MyService 객체를 생성하고 반환하며, myRepository() 메서드는 MyRepository 객체를 생성하고 반환합니다. 이렇게 반환된 객체들은 스프링 컨테이너에 의해 빈으로 등록되고 관리됩니다.
@Bean 어노테이션을 사용하면, 개별 빈을 정의하고 생성할 때 필요한 추가적인 설정이나 빈 간의 관계를 명시적으로 표현할 수 있습니다. 또한, 외부 라이브러리나 프레임워크의 구성 요소를 스프링 빈으로 등록하고 사용할 수 있습니다.
'Spring' 카테고리의 다른 글
Spring Annotation 14. @Resource (0) | 2023.04.20 |
---|---|
스프링에서 @RequestMapping 어노테이션을 메서드 위에 선언하는 것과 클래스위에 선언하는 것의 차이 (0) | 2023.04.19 |
Spring Annotation 12. @Configuration (0) | 2023.04.19 |
Spring Annotation 11. @Repository (0) | 2023.04.19 |
Spring Annotation 10. @Service (0) | 2023.04.19 |
댓글