반응형
# 목적
- @SpringBootApplication 어노테이션에 대한 이해
❓ @SpringBootApplication
- 스프링부트 애플리케이션의 부트스트랩핑 클래스에 추가되는 어노테이션
- 해당 프로젝트(어플리케이션)가 스프링 부트 애플리케이션임을 나타내는 어노테이션
🔎 @SpringBootApplication 구성
1. @SpringBootConfiguration
- 사용자가 추가적으로 빈이나 설정 클래스를 등록 가능하게 한다.
- 개발자가 추가한 빈을 스프링 컨테이너의 빈으로 자동등록시킨다.
- 개발자가 추가한 빈은 @Configuration 어노테이션이 부착된 클래스 내부에서 정의한 것이다.
ex)@Configuration public class SampleConfig { @Bean PasswordEncoder passwordController { return new BCrypPasswordEncoder(); } }
2. @EnableAutoConfiguration
- jar 라이브러리 의존성을 기반으로 자동으로 빈을 등록시킨다.
- 스프링부트로 생성한 애플리케이션에 대해서 자동구성(AutoConfiguration)을 가능하게 해주는 어노테이션
- 사전에 미리 정의된 객체를 스프링 컨테이너의 빈으로 자동 등록되도록 한다.
(스프링부트는 라이브러리 의존성을 기반으로 사전에 미리 정의된 객체를 자동으로 스프링 컨테이너의 빈으로 등록하고, 의존성 주입까지 완료한다.)
3. @ComponentScan
- @Component가 적용된 클래스들을 스캔해서 자동으로 빈으로 등록시킨다.
- 부트스트래핑 클래스가 위치한 패키지 및 그 하위 패키지에서 클래스를 스캔하고, 스프링 컨테이너의 빈으로 자동등록시킨다.
- 개발자가 작성한 클래스 중에서 아래의 어노테이션이 부착된 것이 자동 등록 대상이다.
- @Controller, @RestController, @ControllerAdvice, @RestControllerAdvice
@Service, @Repository
@Component
@Configuration
💡 application.properties
- 스프링의 환경설정 파일로, 자동으로 생성되어 있음.
변경 불가
- 빈을 등록할 때 필요한 설정값 등을 작성
< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >
🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Spring-SpringBootApplication-어노테이션
'BackEnd > Spring' 카테고리의 다른 글
[Spring Boot] Spring Boot로 웹 애플리케이션 프로젝트 생성하기 (기본 설정) (0) | 2025.01.17 |
---|---|
[Spring] Lombok의 주요 어노테이션 (Feat. Builder 패턴) (0) | 2025.01.16 |
[Spring] Spring Boot란? (2) | 2025.01.16 |
[Spring] JdbcTemplate의 RowMapper 구현법 - 익명객체, 람다식 (0) | 2025.01.16 |
[Spring] Spring DB Access의 특징 (0) | 2025.01.16 |