Spring Boot 관련 개념
1. Spring Boot 를 왜사용하는지?
1) 생산성
2) Time to Market - 적시에 출시하는게 중요하기 때문.
2. Spring Boot 의 장점?
1) 수동적인 설정의 양을 최소화
auto-configuration - 관련된 클래스가 있음.
props files & JAR classpath을 기반으로해서 자동으로 설정함.
xml 파일을 만들어 줄 필요가 없다.
2) Dependency conflicts를 해결 해준다.
라이브러리간의 버전 충돌이 발생 할 수 있는데 관련된걸 세팅
3) embedded server 제공
애플리케이션 안에 내장 서버를 가지고 있어서 별도 설치 없이 빠르게 시작 할 수 있다.
3. Spring Boot 와 Spring MVC, Spring Rest를 대체하는 것인가?
NO, Spring Boot가 Spring technologies를 활용 하는 것이다.
Spring Boot 4가지 특징
1. Auto Configuration
동일한 작업을 반복하는것을 자동화 한다.
idea : Spring 이 자동으로 bean을 설정
idea : customize 하게 설정이 필요할 수 도 있기 때문에, properties을 통해 cusomize한다.
EX)
spring mvc jar가 애플리케이션에 추가될때, auto configure 하도록 판단.
-> spring mvc jar 가 classpath 가 있다면, Dispatcher Servlet을 자동 설정한다. (조건에 따라 자동 설정함)
//@SpringBootApplication : Annotation의 조합
@Configuration
@EnabledAutoConfiguration // 자동 설정 기능 활성화
@ComponentScan
public class Application {
~~
}
@Conditional :조건을 체크해서 설정함.
EX)
)
2. Easy DependencyManagement
Spring Boot Starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Added Dependencies : 자동적으로 Dependencies 에 추가
Spring - core, beans, context, aop
Web MVC - (Spring MVC)
Jackson - for JSON Binding
Validation - Hibernate Validator, Validation API
Embedded Servlet Container - Tomcat
Logging - logback, slf4j
3. EmbeddedServer
main() 메서드가 시작되면, 내장서버를 실행시킨다.
외부에 톰켓 서버에서 애플리케이션을 배포할 필요가 없다.
'war' 파일이 아닌 'jar' 로 패키징이 이루어진다.
4. SpringBoot Actuator
애플리케이션 monitoring , tracing
어플리케이션을 서비스할때 중요하다.
REST endpoints 를 자동적으로 추가해준다.
EX) /beans, /mappings
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
default : /heath and /info 가 노출되어 있음.
Endpoints are prefixed with : /actuator -> /acutator/health
'Backend > Spring & SpringBoot' 카테고리의 다른 글
[WEB] URI 규칙 10가지 (0) | 2022.03.09 |
---|---|
[JPA] JPA / Hibernate Cascade Types 요약 (0) | 2022.03.09 |
[Spring] 스프링에서의 Restful web Service (0) | 2022.03.08 |
Restful Web Service (0) | 2022.03.07 |
[Spring Boot] Spring Data JPA의 사용법과 사용이유, 예시 (0) | 2022.03.07 |