ㅇ 스프링 부트 2.1
ㅁ 의존성 변경
- 스프링 프레임워크 5.0 -> 스프링 프레임워크 5.1
- 로거 설정 개선
- JUnit 4.12 => JUnit 5.2
- 톰캣 8.5.39 -> 톰캣 9
> Blocking IO 가 사라지고 Non-blocking IO 가 기본으로 사용
* 공부해야함
- 하이버네이트 5.2 -> 하이버네이트 5.3
> JPA 2.1 -> JPA 2.2 지원
>> JAVA 8 의 DATE, TIME API 매핑 가능
ㅁ Spring-JCL ( Jakarta Commons Logging )
- 로깅 퍼사드는 로거를 골라서 쓰는 것
> 스프링은 로깅 퍼사드를 사용하여, 로거를 선택할 수 있게 해줌
- JCL은 레거시, SLF4J를 사용한다. ( 로깅 퍼사드)
> logback or Log4j 2를 사용 ( 로거 )
- JCL용 브릿지를 만들어서, 결국 모두 SLF4J를 쓰게한다.
- spring-boot-web 디펜던시에 자동으로 브릿지가 들어가있다.
ㅁ 빈 오버라이딩 기본 설정 변경
- Bean은 내가 정의하여 componentScan으로 등록하거나, AutoConfiguration에 의해 등록될 수 있는데,
기존에는 AutoConfiguration이 overriding 하였으나, 스프링 부트 2.1 부터는 재정의 하지 못하게 구성됨
- spring.main.allow-bean-definition-overriding=true 으로 허용할 수도 있음
- @ConditionalOnMissingBean 등으로 조건은 가능
ㅁ 자동 설정 지원 - 2.1 부터 지원
- @EnableAsync 는 Async 기능을 키는 것이고, @Async 가 붙은 메소드를 수행할수있게한다.
여기서는 TaskExecutionAutoConfiguration 이 적용되어진다.
- @EnableSchduling은 스케줄링 작업을 하게 하는것이고, TaskSchedulingAutoConfiguration이 적용된다.
=> application.properties에서 설정값 변경 가능
- spring-boot-stater-jdbc 의 자동설정도 지원
-> spring jdbc와 mybatis 연동하여 쓰는것도 좋은 방법
ㅁ 프로퍼티 변경 & 프로퍼티 마이그레이션
- jpa의 repository의 등록 관련 설정
> default : 어플리케이션 구동시 proxy로 객체 참조값을 생성하고 인스턴스를 주입
defferd : 어플리케이션 구동시 proxy로 객체 참조값을 생성하나, 구동 이후 인스턴스를 주입 (충분 )
lazy : 어플리케이션 구동시 proxy로 객체 참조값을 생성하나, 실제 repository 사용 요청이 올때, 객체를 생성
=> 굳이 할 필요는 없다
- server.servlet.path 는 2.0.9에는 적용되었으나, 2.1 버전에서는 구동은 되나 무시함
> 마이그레이션 툴을 쓰면 고쳐야될게 콘솔에 나옴
ㅁ JUnit 5
- @RunWith(SpringRunner.class) 안 씀
> SpringRunner는 Runner의 구현체로 컨텍스트들을 전부 불러와서, 빈들을 등록해줌
> JUnit 5 부터는 extendwith 로 구현할 수 있으나. @SpringBootTest에 포함되어 있음
- 꼼수, mockMvc.perform(get()) 요청이 필요할때, mockMvc.perform(post()) 로 import 하고, import의 post를 * 로 바꿈
- 람다식을 지원함
> assertAll 및 람다식 을 통해 모든 assert를 실행해볼 수 있다.
ㅁ DataSize
- 데이터 사이즈를 표현하는 방법
- 스프링 프레임워크 5.1 부터 지원하는 내용
- StringToDataSizeConverter, NumberToDataSizeConverter 등의 컨버터 지원
- MB, GB, KB, TB, B 등을 지원
ㅁ 로그 그룹
- 로그 그룹 정의하는 방법
- ● logging.group.{그룹 이름}={패키지}, {패키지}, {패키지}, ...
- ● logging.level.{그룹 이름}={로그 레벨}
- 로그는 성능에 영향을 주기때문에 debug는 권장하지 않음
ㅁ Actuator 관련 변경
- 2.1 이전에는 스프링 시큐리티를 쓰면 모든 endpoint를 로그인해야함
> spring actuator 포함
- 2.1 이후에는 spring actuator의 endpoint (info , health 등은 허용 )
'Spring' 카테고리의 다른 글
[Spring] 스프링 부트 업데이트 - 3 (0) | 2021.07.21 |
---|---|
[Spring] 스프링 부트 업데이트 - 2 (0) | 2021.07.21 |
[Spring] 스프링 부트 개념과 활용 - 4 (0) | 2021.07.19 |
[Spring] 스프링 부트 개념과 활용 - 3 (0) | 2021.07.19 |
[Spring] 스프링 부트 개념과 활용 - 2 (0) | 2021.07.10 |