Study/Java (196) 썸네일형 리스트형 JDK 18 ~ JDK 21 사이 추가된 Feature JDK 버전별 New Features JDK 21은 기존 3년 주기 LTS (Long-term support) 정책을 2년 주기로 변경한 이후 나온 첫 LTS 버전이다. 지난 LTS 버전인 JDK 17 이후 18, 19, 20, 21을 거쳐 어떠한 것들이 변경되었는지 정리해 보았다. (이후 추가될 기능과 관련된 Incubator, Preview feature는 제외) 만약 각 JDK별 변경 사항을 확인하고 싶은 경우 이전 글을 참고하면 된다. 2022.03.24 - [Study/Java] - JDK 18 New Features 2022.09.21 - [Study/Java] - JDK 19 New Features 2023.05.07 - [Study/Java] - JDK 20 New Features 2023.. JDK 21 New Features JDK의 버전별 변경 사항은 이곳을 참고하세요. Spec Java SE 21 Platform JSR 396에 정의된 바와 같이 JSR 396 구현이 목표 실제 Spec은 Final Release Specification 문서를 참고해야 함 Final Release Specification Feature Summary 전체 JEP Feature 목록은 OpenJDK의 JDK21 문서로 확인할 수 있다. JEP Component Feature JEP 430 specification / language String Templates (Preview) JEP 431 core-libs / java.util:collections Sequenced Collections JEP 439 hotspot / gc Gener.. vaadin 사용해 보기 Vaadin 소개 https://vaadin.com/ vaadin은 ui component 구성을 제공해 주는 java기반 웹프레임워크이다. Swing이나 AWT를 작성하는 것처럼 java 코드를 작성하면 요청에 대해 대응되는 web ui를 제공해 준다. ui관련 html, javascript, css 작업을 따로 하지 않아도 되고 Java 대신 TypeScript를 사용할 수도 있다. 기본 기능은 open-source로 제공되며 생산성 향상을 위한 vaadin UI 관련 테스트 도구나 Advanced UI component는 유료로 제공된다. Vue, Svelte 같은 Front-end Framework를 흥미를 가지고 공부해 보았지만 너무나 변화하는 속도가 빠르다 보니 다른 방법이 없을까 싶어 찾아보.. [troubleshooting] Spring Boot 테스트 코드 실행 시 java.lang.NoClassDefFoundError: io/micrometer/context/ThreadLocalAccessor 에러 Spring Boot 3.1.1에서 테스트 코드 실행 시 다음과 같은 에러가 발생했다. Caused by: java.lang.IllegalStateException: MicrometerObservationRegistryTestExecutionListener requires micrometer-observation 1.10.8 or higher at org.springframework.test.context.observation.MicrometerObservationRegistryTestExecutionListener.(MicrometerObservationRegistryTestExecutionListener.java:80) ... 59 common frames omitted Caused by: java... annotation 을 가진 class 검색에 reflection util 대신 Spring TypeFilter 사용으로 대체하기 Reflection 소개 reflection 은 java의 classpath metadata를 scan 하고 캐싱하는 라이브러리이다. https://github.com/ronmamo/reflections 다음과 같은 것들을 scan 할 수 있다. type의 subtype annotation으로 주석이 달린 type annotatoin, parameters, return type이 있는 method classpath 경로에서 찾을 수 있는 resource ... 사용 방법은 간단하다. dependency를 추가하고 # Maven org.reflections reflections 0.10.2 # Gradle implementation 'org.reflections:reflections:0.10.2' 다음과 .. Spring Boot Condition Evaluation Report 확인하기 Condition Evaluation Report 소개 spring-boot-autoconfigure 를 사용하면 여러 조건에 따라 제공되는 AutoConfiguration 설정들이 활성화 또는 비활성화된다. 예를 들어 DataSource를 사용할 때 DataSource 관련 properties나 bean 설정을 하고 DataSource 관련 jar를 참조하는 경우 DataSourceAutoConfiguration에서 활성화 조건들에 대해 체크한 후 활성화되어 사용자가 일일이 설정하지 않아도 기본적인 설정들을 제공해 준다. Spring Boot는 어떤 AutoConfiguration이 활성화되고 어떤 AutoConfiguration이 비활성화되었는지 확인할 수 있도록 Condition Evaluation.. STS Newer patch version of Spring Boot available warning disable 처리하기 최근 STS를 사용하면 새 Spring 버전이 release 된 내용을 warning으로 알려준다. 4.17.0에 추가된 기능인 듯하다. https://github.com/spring-projects/sts4/issues/885 바로바로 버전을 변경할 수 있는 환경이면 이런 기능이 좋지만 계속 이전 버전을 사용해야 하고 여러 project를 import 해서 사용하고 있는 환경이면 이 warning이 50개 이상 뜨면서 실제로 보고 싶은 다른 유효한 warning을 보는 걸 방해하게 된다. 이런 경우 새 버전 알림 warning을 disable 처리하면 된다. Preferences -> Spring -> Validation -> Versions and Support Ranges를 선택하고 비활성화를 선택.. Jackson ObjectMapper 특정 요청에 대해서만 jsonIgnore 처리하여 응답하기 objectMapper를 사용하면 보통 다음처럼 @JsonIgnore 처리를 하여 response 값에서 제외 처리를 하게 된다. public class SomeDomain { private int someFieldA; @JsonIgnore private int someFieldB; @JsonIgnore private String someFieldC; } 전체 공통으로 @JsonIgnore를 사용하지 않고 새로 추가하는 요청에 대해 특정 필드를 숨기고 싶은 경우가 있다. simpleModule로 deserializer를 등록하는 건 전체 공통 적용인 것 같고 @JsonView를 @ResponseBody에 사용하려면 기존에 사용하던 전 구간에 @JsonView를 지정해야 하는 문제가 있다. (exclude.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 25 다음