Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

자동 구성, 스프링 부트 3와 자바 버전 본문

Spring/Spring Boot

자동 구성, 스프링 부트 3와 자바 버전

빌드이너프 2023. 12. 19. 17:52

자동 구성

스프링 부트에서는 애플리케이션이 최소환의 설정만으로도 실행되게 여러 부분을 자동으로 구성한다

스프링 부트는 서버를 시작할 때 구성 파일을 읽어와서 설정한다 => 자동 설정

META-INF에 있는 spring.factories 파일에 담겨 있다

 

자동 구성이 없으면 개발자가 특정 기술을 사용할 때마다 설정해야 하는 값을 직접 설정해야 한다


 

스프링 부트 3와 자바 버전

스프링 부트 3 이전과 이후는 사용할 수 있는 자바 버전의 범위가 다름

스프링 부트 2는 자바 8 버전 이상을 사용했지만,

스프링 부트 3는 자바 17 버전 이상을 사용해야 한다

 

텍스트 블록

이전에는 여러 줄의 텍스트를 작성하려면 \n을 추가해야 했지만

이젠 """ 내용 """로 감싼 텍스트를 사용해 여러 줄의 텍스트로 표현할 수 있다

 

formatted() 메서드

값을 파싱하기 위한 formatted() 메서드 제공

 

레코드

데이터 전달을 목적으로 하는 객체를 더 빠르고 간편하게 만들기 위한 기능

레코드는 상속을 할 수 없고 파라미터에 정의한 필드는 private final로 정의된다

레코드는 getter를 자동으로 만들기 때문에 애터테이션이나 메서드로 게터 정의를 하지 않아도 된다

 

패턴 매칭

타입 확인을 위해 사용하던 instanceof 키워드를 조금 더 쉽게 사용할 수 있게 해준다

이전에는 instanceof 키워드와 형변환 코드를 조합해야 했지만 이젠 바로 형변환을 한다음 사용할 수 있다

// 11버전
if (o instanceof Integer) {
    Interger i = (Integer) o;
    ...생략...
}

// 17 버전
if (o instanceof Integer i) {
    ...생략...
}

 

 

자료형에 맞는 case 처리

switch-case 문으로 자료형에 맞게 case 처리를 할 수도 있다

 

Servlet, JPA 네임 스페이스가 Jakarta로 대체

패키지 네임 스페이스가 javax.*에서 jakarta로 변경됨

만약 스프링 부트 2버전을 사용하고 있다면 이름을 javax에서 jakarta를 사용하게 변경해야 한다

GraalVM 기반의 스프링 네이티브 공식 지원

기본에 사용하던 자바 가상 머신에 비해 훨씬 빠르게 시작되며 더 적은 메모리 공간을 차지한다

JVM 실행 파일과 비교해 네이티브 이미지를 사용하면 가동 시간이 짧아지고 메모리를 더 적게 소모한다

'Spring > Spring Boot' 카테고리의 다른 글

컨트롤러 살펴보기, @RestController  (0) 2023.12.19
@SpringBootApplication  (0) 2023.12.19
스프링 부트 스타터  (0) 2023.12.19
AOP와 PSA  (0) 2023.12.19
스프링 컨테이너와 빈  (0) 2023.12.19