ㅇ 스프링 부트 2.2
- 자바 13 지원
> 최소 자바 8 로 진행
- 의존성 변경
- 초기화 지연을 통해 어플리케이션 구동 시간 줄이는 기능 추가
> 스프링 프레임워크에는 lazy하게 bean을 등록하는 기능이 있었음
> 장단점이 있음
- immutable @ConfigruationProperties
> lombok 과 같이 사용하면 좋을듯
- Actuator, health 그룹 지원
ㅁ 스프링 HATEOAS API 변경 내역
> HATEOAS 0.25 -> 1.0 으로 되면서 api가 바뀜
> 마이그레이션은 수동으로 진행.. 스크립트가 있지만 잘 안됨
ㅁ 의존성 및 프로퍼티 변경
- 스프링 프레임워크 5.1 -> 5.2
> 스프링 웹플럭스 기반 코틀린, 코루틴 지원
> R2DBC 지원
- backpressure 문제 : 데이터를 계속 non-blocking 형식으로 보내는데, 처리가 늦어져서 문제가 생김
> 이걸 처리하는 방식이 reactive streaming
> 공부해보자
- @Configuration 안에 메소드를 통해 호출하는 bean ( 프록시 안에 있는 것) 은 캐싱해서 가져오기 때문에 동일한 객체로 나옴
> proxyBeanMethods 속성이 있어서, 다른 객체로 나오게 할 수도 있음
ㅁ 성능 개선
- @Configuration(proxyBeanMethods=false) 로 설정
- spring.main-lazy-initialization= true
>빈들을 lazy하게 init함
- spring.data.jpa.repositories.bootstrap-model=lazy
> repository를 lazy 하게 init함
- JMX는 java management extention
> spring.jmx.enabled=true (기본적으로 false) 로 하여 mBean을 JVM에 등록하고 jconsole 통해 모니터링하여, 쓰레드, 메모리 등을 모니터링 가능
- 단점 : 빈의 생성을 지연 시켜서, 최초 요청에 대한 응답이 늦을 수 있음
Fail-Fast에 반하는 문제 발생 - 구동시 발생해야할 에러가 동작중에 발생함
ㅁ @ConfigurationProperties 개선
- 기존에는 @Component로 Bean으로 등록해주거나, @EnableConfigurationProperties(xxx.class) 로 수동 등록해줌
> 많을 수록 계속 추가
- @ConfigurationPropertiesScan 으로 @ConfigurationProperties를 자동으로 bean으로 추가
> 2.2.0에는 문제가 있음 ( scan 안붙여도 자동으로 bean으로 등록 - @SpringBootApplication에 들어있었음 )
- @ConstructorBinding는 생성자를 통해 binding하여 setter를 통해 값을 변경할 수 없음
> Immutable @ConfigurationProperties
> lombok과 같이 쓰면 좋음 -> @ConstructorBinding + @Getter + @AllArgsConstructor
ㅁ Actuator, Health 엔드포인트 변경
- application.properties 에 management.endpoint.health.show-details=always 추가
> 더 많은 정보가 보여짐
- springboot에는 healthContributor 인터페이스가 있음
- 인디케이터들마다 고유의 id가 있다. (diskspace, db 등등..)
- 그룹을 설정하여 엔드포인트/그룹 으로 진행할 수도 있음
'Spring' 카테고리의 다른 글
[Spring] 스프링 부트 업데이트 - 4 (0) | 2021.07.22 |
---|---|
[Spring] 스프링 부트 업데이트 - 3 (0) | 2021.07.21 |
[Spring] 스프링 부트 업데이트 - 1 (0) | 2021.07.20 |
[Spring] 스프링 부트 개념과 활용 - 4 (0) | 2021.07.19 |
[Spring] 스프링 부트 개념과 활용 - 3 (0) | 2021.07.19 |