본문 바로가기
Spring

Spring Annotation 13. @Bean

by Status Code 2023. 4. 19.
@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 어노테이션을 사용하면, 개별 빈을 정의하고 생성할 때 필요한 추가적인 설정이나 빈 간의 관계를 명시적으로 표현할 수 있습니다. 또한, 외부 라이브러리나 프레임워크의 구성 요소를 스프링 빈으로 등록하고 사용할 수 있습니다.

댓글