Spring Initializr를 이용해서 프로젝트를 만들면 프로젝트명Application이 자동으로 생성됩니다.
메서드 선언부에는 main 메서드 하나만 선언되어 있고 SpringApplication.run 메서드를 호출해서 웹 애플리케이션을 실행합니다.
그 위의 @SpringBootApplication 가 오늘 살펴볼 어노테이션입니다.
@SpringBootApplication은 크게 @SpringBootConfiguration 과 @EnableAutoConfiguration 그리고 @ComponentScan 이 세 가지로 이루어져 있습니다.
@ComponentScan
@ComponentScan은 @component 어노테이션 및 @Service, @Repository, @Controller 등의 어노테이션을 스캔하여 Bean으로 등록해주는 어노테이션입니다. 기존의 XML 설정 방식의 스프링은 빈(Bean)의 등록 및 스캔을 위해 수동으로 ComponentScan을 여러 번 선언해서 사용해왔다고 합니다. 그러나 스프링 부트는 이 어노테이션에 의해 IoC가 간편해졌습니다.
@EnableAutoConfiguration
@EnableAutoConfiguration은 사전에 정의한 라이브러리들을 Bean으로 등록해주는 어노테이션입니다. 즉 자동 설정의 핵심 어노테이션이 됩니다. 클래스 경로에 지정된 내용을 기반으로 설정 자동화를 수행합니다.
@SpringBootConfiguration
@SpringBootConfiguration annotation in Spring Boot is a class-level annotation which indicates that this class provides the application configuration.
www.javacodegeeks.com/2019/09/springbootconfiguration-annotation-spring-boot.html
음.. 제가 해석을 잘 못하는 것인지.. 그냥 configuration과 관련한 어노테이션이라고 해석되는군요. 그렇다면 @Configuration과의 차이점은 무엇일까요?? 위의 문서의 내용을 번역해보자면 일단 @SpringBootConfiguration은 configuration을 알아서 찾아서 구성합니다. 따라서 unit 혹은 integration test에 용이하다고 하는군요. 실제로 Springboot에서 Test코드를 작성 시에 저 어노테이션을 찾으려고 하므로 부트 유저라면 해당 어노테이션을 쓰는 게 맞다고 생각합니다.
참고
velog.io/@adam2/SpringBoot-%EC%9E%90%EB%8F%99-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95AutoConfiguration
'web > spring&spring boot' 카테고리의 다른 글
[spring boot] 스프링 부트 h2 데이터베이스 영구 저장 (0) | 2021.04.01 |
---|---|
[스프링부트] 게시판 - 게시글 등록 구현하기(1) (0) | 2021.03.28 |
[spring boot] H2 Database "mem:testdb" not found 오류 해결법 (1) | 2021.02.24 |
[spring] @Controller와 @GetMapping (2) | 2021.02.22 |
[spring boot] 프로젝트 생성하기 (0) | 2021.02.17 |