본문 바로가기

학습 기록/스프링 부트3 백엔드 개발자 되기[자바편]

[02장. 4] 1. @SpringBootApplication 이해하기

[1단계] SpringBootApplication.java 파일

// 스프링 부트 실행 파일
@SpringBootApplication
public class SpringBootApplication{
	public static void main(String[] args){
    	SpringApplication.run(SpringBootAplication.class, args);
    }
}

: @SpringBootApplication - 스프링 부트 사용 시 필요한 기본 설정

: SpringBootApplication.run() 메서드 - 애플리케이션 실행

 

[2단계] SpringBootApplication 애너테이션 구성

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration // 스프링 부트 권한 설정
@ComponentScan // 사용자가 등록한 빈을 읽고 등록
(excludeFilters = {

@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class)

})

@EnableAutoConfiguration // 자동으로 등록된 빈을 읽고 등록
public @interface SpringBootApplication{
// 생략
}

1) SpringBootConfiguration

: 스프링 부트 관련 설정을 나타내는 애너테이션

: @Configuration을 상속해서 만들어짐

 

2) ComponentScan

: 사용자가 등록한 빈을 읽고 등록하는 애너테이션

: @Conponent 애너테이션을 가진 클래스들을 찾아 빈으로 등록

- @Configuration : 설정 파일 등록

- @Repository : ORM 매핑

- @Controller, @RestController : 라우터

- @Service : 비즈니스 로직

 

3) @EnableAutoConfiguration

: 스프링부트 자동 구성 활성화 애너테이션

: 서버 실행 시 스프링 부트 메타 파일에 정의된 설정들을 자동으로 구성하는 역할