어노테이션 / 스프링 시작 / 어떻게 빈 들을 등록하는가 / 언제 등록되는건가 / 스프링붓 / 부트 /
@SpringBootApplication
annotation
@SpringBootApplication
를 사용하는 것은
@SpringBootConfiguration
,
@EnableAutoConfiguration
, @ComponentScan
를
같이 사용하는 것과 같다고 한다.[ref.2]
// @SpringBootConfiguration
// @EnableAutoConfiguration
// @ComponentScan
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
scan 하려는 package 를 추가하려 할 때
기본적으로, component들의 위치를 찾을 때 spring-boot 은 main class 가 있는 곳의 sub-package들을 찾아보게 된다.
@SpringBootApplication(
scanBasePackages = [
com.springhow.examples.autoconfig::class,
com.springhow.examples.components::class,
com.thirdparty.components::class
],
exclude = [SecurityAutoConfiguration::class]
)
@EnableAutoConfiguration
- SpringApplicationContext 의 auto-configuration 기능을 enable 시킨다. 그래서 classpath 의 component들을 scan 하고, bean들을 등록한다.
@Component
,@Configuration
,@Bean
, meta-annotations 등이 설정된 bean들을 자동으로 등록한다.(register)- 이 설정은 application 내에서 한번만 사용해야 한다.
@Configuration
class에 annotation 을 넣으면, Spring Container 에게 이 class 가 @Bean 을 정의하는 methods 를 가지고 있다고 알려주게 된다.
그러면, Spring container가 class 를 처리해서 application 에 사용할 Spring Bean들을 만든다.
댓글 없음:
댓글 쓰기