spring boot bean 스프링부트 빈

agnusdei·2023년 9월 3일
0

스프링 부트(Spring Boot)는 스프링(Spring) 프레임워크의 확장으로, 스프링 애플리케이션을 더 쉽게 개발하고 구성할 수 있도록 도와주는 도구입니다. 스프링 부트에서도 스프링 프레임워크의 핵심 개념 중 하나인 "Bean"을 사용하며, 스프링 부트 애플리케이션에서 Bean을 정의하고 관리하는 방법을 아래에서 설명합니다.

스프링 부트에서 Bean의 특징:

  1. 자동 구성 (Auto Configuration): 스프링 부트는 다양한 환경에서 애플리케이션을 자동으로 구성하기 위한 "자동 구성"을 제공합니다. 따라서 많은 Bean은 자동으로 생성되며, 개발자는 일부 구성만 수정하거나 추가할 수 있습니다.

  2. 내장된 컨테이너 (Embedded Container): 스프링 부트는 내장된 웹 서버(Tomcat, Jetty, 등)를 사용하여 웹 애플리케이션을 실행하므로, 웹 관련 Bean도 자동으로 설정됩니다.

  3. 외부 설정 (External Configuration): 스프링 부트는 외부 설정 파일(properties 또는 YAML)을 사용하여 Bean의 속성을 구성할 수 있도록 지원합니다.

스프링 부트에서 Bean 정의 및 관리:

  1. 자동 구성 (Auto Configuration): 스프링 부트는 @SpringBootApplication 어노테이션을 사용한 클래스에서 시작하여 자동 구성을 수행합니다. 이 어노테이션은 @ComponentScan@EnableAutoConfiguration을 포함하고 있으며, @ComponentScan은 Bean 스캔을 활성화하고, @EnableAutoConfiguration은 자동 구성을 활성화합니다.
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}
  1. Bean 정의: 스프링 부트에서 Bean을 정의하려면 @Bean 어노테이션을 사용하거나 @Component, @Service, @Repository, @Controller와 같은 스프링의 컴포넌트 어노테이션을 사용하여 Bean을 생성하고 등록할 수 있습니다.
@Configuration
public class MyConfig {

    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
}

또는

@Service
public class MyService {
    // ...
}
  1. 의존성 주입: 스프링 부트는 @Autowired 어노테이션을 사용하여 Bean 간의 의존성 주입을 지원합니다.
@Service
public class MyService {

    private final MyRepository myRepository;

    @Autowired
    public MyService(MyRepository myRepository) {
        this.myRepository = myRepository;
    }

    // ...
}
  1. 외부 설정: application.properties 또는 application.yml 파일을 사용하여 Bean의 속성을 외부에서 구성할 수 있습니다.
# application.properties
myapp.name=My Application
# application.yml
myapp:
  name: My Application
@Service
public class MyService {

    @Value("${myapp.name}")
    private String appName;

    // ...
}

스프링 부트는 자동 구성과 외부 설정을 통해 애플리케이션 개발을 간편하게 만들어주며, 개발자가 Bean을 선언하고 관리하는데 있어서도 스프링의 기본적인 개념을 그대로 활용합니다.

0개의 댓글