개발 175

[Lombok][Warning] @Builder will ignore the initializing expression entirely.

warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder. Default. If it is not supposed to be settable during building, make the field final. 빌드 시에 위 warning이 뜨는 케이스에 대해 알아보자. @Builder @Data @NoArgsConstructor public class Worker { private Long workerId; private WorkerType type = WorkerType.BASIC; } 만약 위와 같은 코드..

개발/Java 2023.01.15

[Lombok][Warning] 상속받은 클래스에 @Data만 사용하면 Warning이 뜨는 이유

프로젝트를 빌드할 때 종종 보이는 warning이 거슬려서 정리하는겸 블로그에 정리해본다. warning: Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. @Data 위 에러가 빌드할 때 종종 에러로 올라오는 것을 보았는데, IntelliJ를 통해 수정하면 @EqualsAndHashCode(callSuper=true) 어노테이션을 붙여주며 해결하지만, 왜 필요한지 한번 알아보자..

개발/Java 2023.01.14

[Java] AssertJ 사용법

Introduction to AssertJ | Baeldung AssertJ is an open-source library for writing fluent and rich assertions in Java tests. This article focuses on tools available in the basic AssertJ-core module. www.baeldung.com 해당 게시글은 위 글을 번역 및 테스트한 글이다. 1. AssertJ란? Java Test를 다양하게 사용할 수 있는 오픈 소스 커뮤니티 중심 라이브러리 2. 소개 AssertJ의 클래스 및 유틸리티 메소드 Standard Java Java 8 Guava Joda Time Neo4J and Swing components 예시 코..

개발/Java 2022.10.23

[Spring] Spring Boot 버전별 차이점

Spring Boot 버전 별 차이점 (2.2 ~ 3.0) + Spring Cloud 1. 개요 최근 사내에서 Spring Boot 버전을 올리면 어떨까 해서 Spring Boot 버전 및 Spring Cloud 버전 차이점에 대해서 간단하게 알아보고 있다. 프로젝트마다 Spring Boot 사용하는 버전은 각각 다른데, 그러다 보니 가끔 코드를 이쪽저쪽 주워 가다 보면 다른 점들이 있어서 변경해서 사용하곤 했다. 구체적으로 어떤 차이점이 있는지 한번 알아보고 상위 버전으로 마이그레이션을 한다면 어떤 것들을 주의해야 하는지도 알아보자. 일단 사내에서 사용중인 제일 낮은 Spring Boot 버전은 2.1.X 버전 대라 해당 버전 이후 버전들을 확인했다. 2. Spring Boot와 Spring Frame..

개발/Spring 2022.10.22

[Spring] Spring Boot v2.7

Spring Boot v2.7 Spring Boot 2.7 Release Notes · spring-projects/spring-boot Wiki 1. spring.mongodb.embedded.features 구성 속성이 제거됨 Embedded Mongo 3.4는 Mongo 기능 구성에 대한 지원을 중단함. 이에spring.mongodb.embedded.features 구성 속성이 제거되었음. Mongo를 시작하는 데 사용되는 명령줄을 변경하기 위해 기능이 지정되는 고급 구성의 경우 사용자 지정 MongodConfig 빈을 대신 제공해야 함. 2. MongoDB 속성 우선 순위 이전에는 spring.data.mongodb.uri가 spring.data.mongodb.host 및 spring.data.m..

개발/Spring 2022.10.18

[Spring] Spring Boot v2.6

Spring Boot 2.6 Release Notes · spring-projects/spring-boot Wiki 1. Spring Boot 2.4로부터 Deprecation 된 사항 Spring Boot 2.4에서 더 이상 사용되지 않는 클래스, 메서드 및 속성이 이번 릴리스에서 제거됨. 업그레이드하기 전에 더 이상 사용되지 않는 메서드를 호출하지 않는지 확인 2. 기본적으로 금지된 순환참조 이제 기본적으로 빈 간의 순환 참조가 금지됨. BeanCurrentlyInCreationException으로 인해 애플리케이션이 시작되지 않으면 종속성 주기를 중단하도록 구성을 업데이트하는 것이 좋다. 만약 순환 참조 해결이 어렵다면 spring.main.allow-circular-references를 true로..

개발/Spring 2022.10.17

[Spring] Spring Boot v2.4

Spring Boot v2.4 Spring Boot 2.4 Release Notes · spring-projects/spring-boot Wiki 1. Spring Boot 버전 관리 체계 변경 2.4부터 Spring Boot는 새로운 Spring 버전 관리 체계를 채택 2.3.5.RELEASE→ 2.4.0 2. Junit5 vintage engine 제거 Spring Boot 2.4 업데이트 이후 Junit 클래스 테스트 컴파일 오류로 표시되는 org.junit.Test는 spring-boot-starter-test의 Junit5의 빈티지 엔진이 제거되었기 때문일 수 있음. Junit5로 마이그레이션 없이 계속 Junit4를 사용하려면 gradle의 경우 아래 종속성을 추가한다. testImplemen..

개발/Spring 2022.10.15

[Spring] Spring Boot v2.3

Spring Boot 2.3 Release Notes · spring-projects/spring-boot Wiki Spring Boot 2.2에서 업그레이드된 내용 Gradle 6.3 이상 지원 (5.6.x는 지원은 하지만 deprecated 됨.) 1. Validation Starter가 WebStarter에 더 이상 포함되지 않는다. webstart에서 빠졌기 때문에 별도로 gradle에 써주어야 함. dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-validation' } 2. 기본적으로 고유한 DataSource 이름을 사용해야 한다. 기본적으로 DataSource 이름이 자동 구성될 때를 위해 고유한..

개발/Spring 2022.10.14

[Spring] Spring Boot v2.2

Spring Boot v2.2 Spring Boot 2.2 Release Notes · spring-projects/spring-boot Wiki Spring Boot 2.1에서 업그레이드된 내용 1. Spring Boot 2.1의 Deprecated 건 삭제 2.1에서 deprecated된 사용되지 않는 클래스, 메서드 및 속성이 이번 릴리즈에서 제거되었으므로 확인 2. Spring Framework 5.2 이번 릴리즈에서 Spring Framework 5.2로 업그레이드됨. 자세한 문서는 아래 참고. Spring Framework’s upgrade documentation 3. JMX는 기본적으로 비활성화 이번 버전부터 jmx는 기본적으로 비활성화됨. 필요시 spring.jmx.enabled=true..

개발/Spring 2022.10.13

[Spring] Spring Framework 6.0과 Spring Boot 3.0 Preview

Spring Framework 6.0과 Spring Boot 3.0 Preview Spring Framework 6.0과 Spring Boot 3.0 2022년 11월 정도에는 Spring Framework 6.0, Spring Boot 3.0 출시 예정이다. 간단하게만 미리 살펴본다면 큰 기능은 아래와 같다. Spring Framework 6.0 Java 17 based on XML 구성 형식은 지원이 안될 수 있음 (점차 Spring에서 제거) 일부 Java EE API 지원 종료 RPC 지원 종료 새로운 AOT 엔진 도입 Jakarta EE 9+로의 마이그레이션으로 인한 변경 Cloud Native Spring Boot 3.0 Spring Boot 3.0은 Spring Framework 6.0을 기..

개발/Spring 2022.10.12