728x90

src/main/java/기본패키지 하위에 있는 Application 클래스를 다시 살펴보자.

@SpringBootApplication 이라는 어노테이션이 있다. 

이 어노테이션이 뭐길래 저것만으로 클래스를 실행했을 때 스프링 부트가 동작하는 것일까.

사실 이 @SpringBootApplication 은 세 가지 어노테이션이 합쳐진 것이다.

  • @Configuration : 자바 설정 파일을 위한 어노테이션이다.
  • @ComponentScan : 스프링 프로젝트의 @Component라는 어노테이션이 붙은 클래스를 찾아서 Bean으로 등록한다. @Configuration, @Repository, @Service, @Controller, @RestController 등이 Component들이다.
  • @EnableAutoConfiguration : spring-boot-autoconfigure -> META-INF -> spring.factories에 정의된 데이터를 읽어서    자바 설정 파일인 @Configuration들을 Bean으로 등록해준다.                     

 

Spring Boot의 빈 등록은 사실 두 단계로 진행된다.

  1.  @ComponentScan을 통해 Component들을 Bean으로 등록한다.
  2.  @EnableAutoConfiguration을 통해 미리 정의해둔 자바 설정 파일들을 Bean으로 등록한다.

 

결국 SpringBootFirstApplication.class 또한 자바 설정 파일(Configuration)로 등록을 해서 스프링에서 관리를 하는 것이다.

 

 

728x90

+ Recent posts