2018-9-6 SpringBoot 설정
스프링부트 자동설정
- @SpringBootApplication 어노테이션은 @SpringBootConfiguration, @ComponentScan, @EanbleAutoConfiguration 3가지 어노테이션을 포함한다.
@Configuration
@ComponentScan
public class SpringbootGettingStartApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(SpringbootGettingStartApplication.class);
application.setWebApplicationType(WebApplicationType.NONE);
application.run(args);
SpringApplication.run(SpringbootGettingStartApplication.class, args);
}
}
-
위의 코드를 통해, @EnableAutoConfiguration어노테이션은 @Componentscan이 일어난 다음에 진행이 된다.
-
@Componentscan : @Component이 붙은 클래스들을 스프링이 실행될 때, 빈으로 등록을 시켜준다.
@ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
- @CompoenetScan은 동일한 패키지내에서만 일어난다. 패키지만 주의하면 된다.
- @AutoConfiguration은 spring-boot-autoconfigure 밑에 있는 META-INF 메타파일들을 스캔한다. spring.factory에 있는 클래스들을 찾아서 설정을 한다.
자동설정 만들기
@Configuration
public class HolomanConfiguration {
@Bean
public Holoman holoman() {
Holoman holoman = new Holoman();
holoman.setHowLong(5);
holoman.setName("jimmy");
return holoman;
}
}
// /resources/META-INF/spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguratio=\
me.whiteship.springbootstarter.HolomanConfiguration
- spring.factories 파일을 만들어서, 자동설정 추가를 해야한다.
Written on September 6, 2018