1. 스프링 부트 등장 배경
- 기본 스프링에서 필요한 모듈을 추가하다 보면 설정이 복잡해 지는 문제가 생긴다.
- 이러한 문제를 해결하기 위해 등장한 것이 스프링 부트이다.
2.스프링 부트의 특징
1.의존성 관리
- 스프링 프레임워크에서 각 모듈의 의존성을 직접 설정하고, 호환되는 버전을 명시해야 동작한다.
- 즉, 애플리케이션에서 사용하는 스프링 프레임워크나 라이브러리 버전을 올리는 상황에서 연관된 다른 라이브러리 버전도 고려해야함.
- 스프링부트에서 이 불편함을 해소하기 위해 'spring-boot-starter'라는 의존성을 제공한다.
- 각 라이브러리 기능과 관련해서 자주 사용되고 서로 호환되는 버전의 모듈 조합을 제공한다.
2. 자동설정
- 스프링 부투는 스프링 프레임워크의 기능을 사용하기 위한 자동설정을 지원한다.
- 자동설정은 애플리케이션에 추가된 라이브러리를 실행하는데 필요한 환경설정을 알아서 찾는다.
- 애플리케이션을 개발하는데 필요한 의존성을 추가하면 프레임워크가 이를 자동으로 관리해준다.
- 메인 애플리케이션 코드를 한번 살펴보자.
@SpringBootApplication
public class SpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootApplication.class, args);
}
}
@SpringBootApplicaion은 3가지 기능을 합친것과 같다.
- @SpringBootConfiguration
- @EnableAutoConfiguration
- @ComponentScan
스프링 부트 애플리케이션이 실행되면 @ComponentScan 어노테이션이 @Compopnent 스테레오타입 어노테이션이 붙은 클래스를 발견해 빈(bean) 등록한다.
@Component 스테레오타입 어노테이션 종류
- @Controller
- @RestController
- @Service
- @Repository
- @Configuration
- 이후 @EnableAutoConfiguration 어노테이션을 통해 그림 1.6과 같이 'spring-boot-autoconfigure' 패기지 안에 spring.factories파일을 추가해 다양한 자동 설정이 적용된다.
- org.springframewor.boot.autoconfigure.EnableAutoConfiguration 하단에 많은 자동 설정이 정의된 것을 볼 수 있다.
- 이 설정은 각 파일에 설정된 @Conditional의 조건을 충족할 경우에 등록되고 애플리케이션에 자동 반영된다.
3. 내장 WAS
- 스프링 부트의 각 웹 애플리케이션에는 내장 WAS(Web Applicaion Server)가 존재한다.
- 의존성 'spring-boot-starter-web' 의 경우 톰켓을 내장한다.
- 스프링부트의 자동설정 기능은 톰켓에도 적용된다. 특별한 설정 없이 톰켓을 실행할 수 있다.
- 필요에 따라 톰켓이 아닌 다른 웹서버 로 대체할 수 있다.
4. 모니터링
- 스프링부트 액츄에이터 (SpringBoot Actuator)라는 모니터링 도구를 사용할 수 있다.
'BackEnd > Spring' 카테고리의 다른 글
AOP에 관하여 (0) | 2024.02.03 |
---|---|
스프링 프레임워크 특징과 구조 (0) | 2023.10.02 |