RATSENO

[SpringBoot]자동 설정 이해 본문

DEV/SPRING

[SpringBoot]자동 설정 이해

RATSENO 2020. 2. 24. 11:26

SpringBoot로 프로젝트를 생성하게 되면, 기존의 SpringFramework로 생성하였던 프로젝트에서 진행하였던

기타 설정들을 자동으로 잡아줍니다. 어떻게 이러한 설정들이 자동으로 이루어지는지 알아보겠습니다.

 

package com.example.ratseno.springbootgettingstrated;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootGettingStratedApplication {

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

}

SpringBoot로 프로젝트를 생성하게되면 main 클래스가 자동으로 생성됩니다. 위의 소스에서 

@SpringBootApplicatino 어노테이션은 아주 중요한 역할을 합니다. 해당 어노테이션을 클릭하게되면

 

자동 설정에 관련된 여러가지 어노테이션들이 적용되어있습니다.

@SpringBootApplication은 세가지의 어노테이션으로 대체될 수 있습니다.

- @SpringBootConfiguration

- @ComponentScan

- @EnableAutoConfiguration

 

Bean은 두 단계에 걸쳐서 등록됩니다.

1. @ComponenScan 에서 먼저 등록되고

2. @EnableAutoConfiguration 에서 나머지가 등록이됩니다.

 

@ComponentScan @Component라는 어노테이션을 가지는 클래스를 빈으로 등록합니다.

- @Configuration @Repository @Service @Controller @RestController 도 같이 등록

- 주의사항 : @ComponentScan이 있는 패키지 하위에 있는 것들만 빈으로 등록 

 

@EnableAutoConfiguration

 

org.springframework.boot.autoconfigure.EnableAutoConfiguration

spring-boot-autoconfigure 프로젝트에 있는 META폴더의 spring.factories파일을 열어보게되면

여러개의 키값에 그에 대한 value값들이 쭈우우욱 정의되어있습니다. 이 value 값들은 설정에 관련된 class들 입니다.

 

백기선님 스프링부트 개념과 활용 참고(인프런)

Comments