본문 바로가기
Spring

[SpringBoot] 스프링부트 - @SpringBootApplication 이해하기

by 상후 2021. 8. 21.
728x90
반응형

스프링 공식문서 가이드를 학습하며 작성한 글입니다.

틀린 내용이 있거나, 의견 등은 언제든지 댓글 달아주시면 감사하겠습니다.

 

사용 IDE  : InteliJ IDE

사용 JDK : JAVA 8


1. @SpringBootApplication

스프링 부트 프로젝트의 실행 클래스(main)에는 @SpringBootApplication 어노테이션이 붙어있습니다.

해당 어노테이션은 스프링 부트를 시작할 때 필요한 것들을 자동으로 구성하고, Bean들을 생성하는 등

즉, 기본적인 설정들을 모두 포함하고 있는 어노테이션입니다.

 

@SpringBootApplication 내부 구성 요소

 

크게 3가지 어노테이션이 포함되는데 구성은 아래와 같습니다.

  • @EnableAutoConfiguration
  • @ComponentScan
  • @SpringBootConfiguration

저는 현재 Spring 레거시 프로젝트를 사용하여 개발하고 있는데, ComponentScan은 낯이 익네요 !

 

1. @EnableAutoConfiguration

SpringBoot 자동 설정 구성의 핵심 어노테이션

classpath 설정 및 @Configuration에 등록된 Bean들을 자동으로 찾아 스프링 컨테이너에 추가하라고 지시하는 어노테이션

 

2. @ComponentScan

기본값으로 설정 시 ROOT 패키지를 포함하여

하위 패키지들 내 @Component 어노테이션들을 스캔하여 스프링 컨테이너에 추가합니다. 

 

대표적으로 @Configuration, @Component, @Controller, @Service, @Repository 등이 있습니다.

 

@Component 어노테이션을 스캔하여 추가하는데 위 어노테이션들은 왜 추가하는 걸까?

@Configuratioin을 예로 내부 구성을 확인하면 그 안에 @Component가 포함된 어노테이션이기 때문

 

@Configuration

 

3. @SpringBootConfiguration

SpringBoot의 설정을 나타내는 어노테이션

프로젝트 당 한 번만 사용할 수 있습니다.


스프링 레거시 프로젝트의 web.xml 파일을 대체하는 느낌을 받았습니다.

부트는 xml 파일을 사용하지 않아도 되는 순수 자바로 이루어져 있네요! 

 

 

 

 

 

728x90
반응형

댓글