전체 Release Notes 목록은 이곳에서 확인할 수 있습니다.https://luvstudy.tistory.com/tag/Release%20Noteshttps://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.4-Release-Notes17 revision 기준으로 작성됨Spring Boot 3.4 Release NotesUpgrading from Spring Boot 3.3RestClient and RestTemplateReactor Netty의 HttpClient 또는 JDK의 HttpClient 를 사용하도록 RestClient 및 RestTemplate 을 auto-configure 하는 지원이 추가되었습니다.우선순위에 따라 지원되는 c..
Java entitiy domain에서 특정 class나 map으로 db의 json 데이터를 바인딩하여 사용할 수 있다.Java domain class에 변경 사항이나 추가 사항을 계속 추가하면서 db에 조금씩 column을 수정/추가하는 것보다db의 json data 저장 column 하나에 가변적으로 값을 계속 추가하여java 쪽 entitiy class에선 json domain class의 최소한의 수정이나 map에서 변경되거나 추가된 값을 호출하여 사용하는 식으로 관리할 수 있다.Java Entity Domain Entity JSON type 선언https://bootify.io/spring-data/hibernate-json-type.htmlHibernate 6.0 이상에선 json type을 ..
기본적인 @ConfigurationProperties , @PropertySource 사용Spring Boot 기반 프로젝트에서 @ConfigurationProperties 로 지정된 bean은 처음 application이 startup 할 때 bean이 생성되고 여러 properties 파일에서 읽어와 Environment에 저장된 값을 가져와 해당 bean에 바인딩해 준다.다음과 같이 @ConfigurationProperties 를 선언하고@ConfigurationProperties(prefix = "someProperties")@Datapublic class SomeProperties { private String someKey1; private long someKey2; //.. ..
swagger ui에서 api를 테스트하면서 인증을 사용하고 싶은 경우 어떻게 하면 될까?swagger는 이와 관련하여 securityScheme를 제공한다.@SecurityScheme annotation을 사용하거나 OpenAPI 설정의 securityScheme 항목을 설정하면 된다.springdoc 문서에는 OpenAPI 설정에 대한 예시가 있다.https://springdoc.org/#how-can-i-define-securityschemeSecuritySchema 설정하기 @Bean public OpenAPI customOpenAPI(@Value("${springdoc.version}") String appVersion) { return new OpenAPI() .components(new..
JDK의 버전별 변경 사항은 여기를 참고하세요SpecJava SE 23 Platform JSR 398 에 정의된 바와 같이 JSR 398 구현이 목표실제 Spec은 Final Release Specification 문서를 참고Final Release Specification Feature Summary전체 JEP Feature 목록은 OpenJDK의 JDK 23 문서 에서 확인할 수 있다.JEPComponentFeatureJEP 455specification / languagePrimitive Types in Patterns, instanceof, and switch (Preview)JEP 466core-libs / java.lang.classfileClass-File API (Second Preview..
spring-boot-properties-migrator 소개Spring Boot 기반 프로젝트에서 버전 변경 시 property가 변경되는 경우가 있다.spring-boot-properties-migrator depnedency를 추가하면 application 실행 시 변경된 property가 어떤 것인지 쉽게 확인할 수 있다.log로 대략 다음과 같이 안내해 준다.The use of configuration keys that have been renamed was found in the environment:Property source 'configserver:class path resource [xxxx.properties]': Key: spring.http.encoding.charset ..
Spring Framework 문서가 antora로 제공된 지 꽤 시간이 지났는데 Spring Boot 문서도 이번 3.3.0부터 antora로 변경되었다.https://antora.org/요즘 오픈 소스 사이트 문서들을 보면 antora로 빌드하는 경우가 상당히 많아 antora 사용 방법에 대해 살펴보았다.Antora 소개Antora는 asciidoc 기반 문서를 기반으로 site 문서 (웹 기반 문서)를 생성하는 도구이다.https://www.algolia.com/antora를 사용하면 여러 git repository에 위치한 adoc 문서들을 취합하고 템플릿을 사용하여 하나의 통일된 스타일의 site 문서로 구성할 수 있다.git repository의 branch 단위의 문서를 가져와 버전별 문서..
전체 Release Notes 목록은 이 곳에서 확인할 수 있습니다.https://luvstudy.tistory.com/tag/Release%20Noteshttps://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.3-Release-Notes10 revision 기준으로 작성됨Spring Boot 3.3.0 Release NotesUpgrading From Spring Boot 3.2Jersey ObservabilityMicrometer 1.13 에서는 Jersey 지원을 중단하고 Jersey의 jersey-micrometer module을 사용하게 되었습니다.Application에서 Jersey metric을 사용하는 경우 업그레이드할 때 org..
SonarQube나 SonarLint를 사용하면 코드 품질 관리가 편해진다.검사 대상 프로젝트의 코드 내 버그, 코드 스멜, 보안 취약점을 찾아 관련 내용을 issue로 등록하여 어느 부분에 어떤 문제가 있는지를 알려준다.하지만 issue로 등록하지 않기를 원하는 내용에 대해서도 Issue로 남기는 경우가 있다.예를 들어 아래와 같이 사용하는 경우를 가정해 보자.(Spring은 class 위치에 @RequestMapping 선언으로 각 method가 호출하는 공통된 path를 조합할 수 있지만 아래의 경우 그렇게 사용하지 않는 케이스라고 가정해 본다.)@Controllerpublic class Controller { private final String pathPrefix = "/some/prefi..
JDK의 버전별 변경 사항은 여기를 참고하세요 Spec Java SE 22 Platform JSR 397 에 정의된 바와 같이 JSR 397 구현이 목표 실제 Spec은 Final Release Specification 문서를 참고 Final Release Specification Feature Summary 전체 JEP Feature 목록은 OpenJDK의 JDK 22 문서 에서 확인할 수 있다. JEP Component Feature JEP 423 hotspot / gc Region Pinning for G1 JEP 447 specification / language Statements before super(...) (Preview) JEP 454 Foreign Function & Memory AP..