Spring

스프링부트가 처음 실행될 때. @SpringBootApplication에 관하여.

까뮈_b 2022. 4. 19. 14:38

스프링부트를 실행하면 맨 처음 [Artifact명]Application으로 명명된 메인 어플리케이션 클래스의 메인메소드가 실행된다.

 

메인 어플리케이션을 살펴보면 다음과 같이 되어있다.

@SpringBootApplication
public class CoreApplication {

   public static void main(String[] args) {
      SpringApplication.run(CoreApplication.class, args);
   }
}

위의 코드에서 @SpringBootApplication 어노테이션을 살펴보자.

해당 어노테이션은 아래의 3가지 어노테이션을 모두 포함하고 있는 어노테이션이다.

 

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan

각각의 어노테이션은 아래와 같은 역할을 한다.

  • @SpringBootConfiguration: 스프링 부트의 설정을 나타내는 어노테이션이다. 스프링의 @Configuration을 대체하며 스프링 부트 전용 어노테이션이다. 테스트 어노테이션을 사용할 때 계속 이 어노테이션을 찾기 때문에 스프링 부트에서는 필수 어노테이션이다.
  • @ComponentScan: 내부 스캔
    • Configuration, Repository, Service, Controller, RestController
    • Component라는 어노테이션이 달린 의존성이 스캔된다.

 

  • @EnableAutoConfiguration: 외부스캔. 자동 설정의 핵심 어노테이션이다. 
    • 만약에 ComponentScan 스캔을 하고 EnableAutoConfiguration을 할때 둘의 내용이 겹치는 것이 있다면 뒤의 내용으로 덮어써진다.
    • factories 밑에 있는 의존성이 스캔됨
    • com 밑의 패키지에서 다른 구성 요소, 서비스를 찾도록 스캔한다.

 

 

 

 

 

참조 : https://velog.io/@adam2/SpringBoot-%EC%9E%90%EB%8F%99-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95AutoConfiguration

 

[SpringBoot] 자동환경설정::AutoConfiguration 까보기

스프링부트가 어떻게 자동으로 환경설정 하는지 알아봅시다.

velog.io

https://velog.io/@borab/Spring-boot-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC-1

 

Spring boot 개념 정리 Step1 : Spring Application

을 강의를 듣고 정리하였습니다.스프링 부트 스타터강의에서는 maven을 사용하였지만 이번에는 gradle을 이용하여 생성| 환경 : java 11, gradle기타 의존성은 추후 추가Application.java@SpringBootApplication 어

velog.io