ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Springboot -@SpringBootApplication
    SpringBoot 2021. 10. 4. 16:47

    # SpringBoot의 시작

    • SpringBoot는 main() 메소드가 선언된 클래스를 기준으로 시작된다.
    • 해당 main() 메소드에는 @SpringBootApplication 어노테이션이 붙어있다.
    • 해당 @SpringBootApplication 어노테이션은 여러 어노테이션으로 이루어진 메타 어노테이션이다.

    # @SpringBootApplication

    • @EnableAutoConfiguration + @ComponentScan + @SpringBootConfiguration
    • 위 3개의 주요 어노테이션으로 빈 등록 및 자동 설정을 수행한다

    # @ComponentScan

    • 해당 어노테이션이 선언된 클래스는 본인의 하위 패키지에서 @Component, @Service, @Repository, @Controller 등의 어노테이션을 찾아 Bean으로 등록.
    • 즉, @ComponentScan이 선언된 클래스는 @SpringBootApplication이 선언된 클래스 즉, main클래스 이므로 main클래스 하위의 클래스들을 탐색

    # @EnableAutoConfiguration

    • @ComponentScan과는 달리 사전에 정의된 라이브러리들 중 특정 Condition(조건)에 맞는 라이브러리들을 Bean으로 등록 ⇒ 자동설정의 핵심 어노테이션
    • 사전에 정의된 파일의 경로: Dependencies > spring-boot-autoconfigure > META-INF > spring.factories

    # @SpringBootConfiguration

    • Spring의 @Configuration 어노테이션을 포함하는 Springboot의 어노테이션
    • @Configuration 어노테이션: Java Configure 설정 클래스로 간주되어 Bean으로 등록된다.

    'SpringBoot' 카테고리의 다른 글

    Springboot -동작원리  (0) 2021.10.04
    Springboot -DI, IoC, Bean ...  (0) 2021.10.04
Designed by Tistory.