스트링 부트를 구성하는 핵심 요소는 스타터(Starter), 자동설정(AutoConfiguration), 액추에이터(Acturator)다.
1. 스타터 : 스프링이 제공하는 특정 모듈을 사용할 수 있도록 관련된 라이브러리 의존성을 해결한다.
2. 자동설정 : 스타터를 통해 추가한 모듈을 사용할 수 있도록 관련된 빈 설정을 자동으로 처리해준다.
3. 액추에이터 : 스프링 부트로 개발된 시스템을 모니터링할 수 있는 다양한 기능을 제공한다.
1. 스타터
기존의 Spring-Frame의 경우에는 직접 pom.xml에 의존성(dependency)를 주입하거나 직접 파일을 업로드했어야 했다.
하지만 JPA의 경우를 예로 들면, 하이버네이트 관련 의존성만 추가했다고 해서 스파링과 JPA연동을 바로 처리할 수는 없다는 것이다. 즉 스프링과 JPA를 연동하기 위해서는 하이버네이트 말고도 spring-orm.jar나 spring-data-jpa.jar같은 라이브러리들이 추가로 필요하다.
그래서 Spring-Boot의 경우에는 필요한 라이브러리들을 관련된 것끼리 묶어서 마치 패키지처럼 제공한다.
→ 따라서 프로젝트에서 사용하고 싶은 모듈이 있으면, 그 모듈에 해당하는 스타터만 의존성으로 추가하면 된다.
※ 예시 화면은 다음과 같다

#참고 : spring-boot-starter-web은 스프링 프레임워크에 있는 기본적인 MVC패턴을 사용하기 위한 의존성 주입이다.
의존성은 spring-boot-starter-parent → spring-boot-dependencies 순으로 확인하면 dependency를 확인할 수 있다.
결국 맨 하위에 있는 pom.xml에서 version같은 것을 재정의할 수 있다는 것이다.
But.
여기서 문제점이 존재하는데 spring-boot-starter-web에 대한 의존성을 변경하면 그와 관련된 라이브러리도 버전에 맞추어져 버린다. 그렇다면 이를 해결하기 위해서는 property를 수정하면 된다.

2. 자동설정
라이브러리가 추가됐다고 해서 추가된 모듈을 바로 사용할 수 있는 것은 아니다.
기존 Spring-FrameWork에서는 설정 파일에 Bean등록도 해주어야한다.
그러나 @SpringBootApplication에 의해서 자동주입이 자동설정되는데 @SpringBootApplication에 있는 @EnableAutoConfiguration 어노테이션이기 때문이다.
SpringBootApplication에 가장 중요한 어노테이션(Annotation)은
@SpringBootConfiguration, @ComponentScan, @EnableAutoConfiguration 세 개다.
1) SpringBootConfiguration
- SpringBootConfiguration은 Configuration과 동일하다.
2) ComponentScan은
- Configuration, @Repository, @Service, @Controller, @RestController가 붙은 객체를 메모리에 올리는 역할을 한다.
3) EnableAutoConfiguration
- 자동설정과 관련된 어노테이션이다.
'Spring_SpringBoot > 이론' 카테고리의 다른 글
@RequestMapping, @GetMapping, @PostMapping (0) | 2024.06.11 |
---|---|
[ try-with-finall ] VS [ try-with-resource ] (0) | 2024.06.10 |
RestController/Controller (0) | 2024.06.03 |
스프링부트의 ComponentScan Bean이해 (0) | 2024.06.03 |
Spring-Security pom.xml(보완)과 Tomcat (0) | 2024.06.03 |