[컴] @SpringBootApplication annotation

 

어노테이션 / 스프링 시작 / 어떻게 빈 들을 등록하는가 / 언제 등록되는건가 / 스프링붓 / 부트 /

@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들을 만든다.

Reference

  1. Spring Initializr
  2. @SpringBootApplication annotation - How it works | SpringHow
  3. Spring Boot - Auto-configuration - GeeksforGeeks
  4. Spring @Configuration Annotation with Example - GeeksforGeeks

댓글 없음:

댓글 쓰기