Engineering Note

[Spring] @SpringBootApplication 어노테이션 본문

Server/Spring

[Spring] @SpringBootApplication 어노테이션

Software Engineer Kim 2025. 7. 4. 09:44

@SpringBootApplication은 @EnableAutoConfiguration, @ComponentScan, @Configuration을 합쳐놓은 어노테이션이다.

어노테이션특징 및 설명
@EnableAutoConfigurationSpring Boot의 자동 설정 기능을 켜주는 어노테이션이다.
Spring Boot가 클래스패스에 있는 라이브러리와 설정을 보고 적절한 Bean과 설정을 자동으로 구성하게 해준다.
@ComponentScan지정한 패키지 이하의 @Component 어노테이션이 붙은 클래스들을 찾아서 스프링 빈으로 등록해준다.

@Service, @Repository, @Controller, @Component 등이 등록된 클래스들을 자동으로 DI(의존성 주입) 할 수 있게 해준다.

보통 @SpringBootApplication 클래스의 패키지 기준으로 스캔할 수 있다.
@Configuration이 클래스가 스프링 설정 클래스라는 걸 알려주는 역할을 한다.
여기 안에서 직접 @Bean 메서드를 만들어서 빈을 등록하거나, 다른 설정 클래스를 import할 수 있다.
Spring이 이 클래스를 읽고 자바 코드 기반 설정을 가능하게 함

기존 XML 설정을 대체하기 위해 생긴 어노테이션이다.

 

@EnableAutoConfiguration, @ComponentScan

  • 스프링 컨테이너 초기화와 관련된 어노테이션
    • @ComponentScan : @Configuration, @Repository, @Service, @Controller, @RestController가 붙은 객체를 메모리에 올리는 역할.


@Configuration 클래스 예시

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyService();
    }
}

 
 
 
 
참고 자료 : Spring 공식문서(https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/html/using-boot-using-springbootapplication-annotation.html), 

Comments