[Spring] @SpringBootApplication 어노테이션

류넹·2024년 2월 23일
1

Spring

목록 보기
11/50

# 목적

  • @SpringBootApplication 어노테이션에 대한 이해




❓ @SpringBootApplication

  • 스프링부트 애플리케이션의 부트스트랩핑 클래스에 추가되는 어노테이션
  • 해당 프로젝트(어플리케이션)가 스프링 부트 애플리케이션임을 나타내는 어노테이션



🔎 @SpringBootApplication 구성

1. @SpringBootConfiguration

  • 사용자가 추가적으로 빈이나 설정 클래스를 등록 가능하게 한다.
    - 개발자가 추가한 빈을 스프링 컨테이너의 빈으로 자동등록시킨다.
    - 개발자가 추가한 빈은 @Configuration 어노테이션이 부착된 클래스 내부에서 정의한 것이다.
    ex)
    @Configuration
    public class SampleConfig {
        @Bean
        PasswordEncoder passwordController {
            return new BCrypPasswordEncoder();
        }
    }

2. @EnableAutoConfiguration

  • jar 라이브러리 의존성을 기반으로 자동으로 빈을 등록시킨다.
    - 스프링부트로 생성한 애플리케이션에 대해서 자동구성(AutoConfiguration)을 가능하게 해주는 어노테이션
    - 사전에 미리 정의된 객체를 스프링 컨테이너의 빈으로 자동 등록되도록 한다.
    (스프링부트는 라이브러리 의존성을 기반으로 사전에 미리 정의된 객체를 자동으로 스프링 컨테이너의 빈으로 등록하고, 의존성 주입까지 완료한다.)

3. @ComponentScan

  • @Component가 적용된 클래스들을 스캔해서 자동으로 빈으로 등록시킨다.
    - 부트스트래핑 클래스가 위치한 패키지 및 그 하위 패키지에서 클래스를 스캔하고, 스프링 컨테이너의 빈으로 자동등록시킨다.
    - 개발자가 작성한 클래스 중에서 아래의 어노테이션이 부착된 것이 자동 등록 대상이다.
    - @Controller, @RestController, @ControllerAdvice, @RestControllerAdvice
    @Service, @Repository
    @Component
    @Configuration




💡 application.properties

  • 스프링의 환경설정 파일로, 자동으로 생성되어 있음. 변경 불가
  • 빈을 등록할 때 필요한 설정값 등을 작성
profile
학습용 커스터마이징 간단 개발자 사전

0개의 댓글