문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
java:lombok:upgrade [2022/06/23 11:11] kwon37xi [Upgrade 과정] |
java:lombok:upgrade [2022/06/27 16:32] (현재) kwon37xi |
||
---|---|---|---|
줄 11: | 줄 11: | ||
===== 문제된 설정들 ===== | ===== 문제된 설정들 ===== | ||
- | | + | ==== 1.16.20 lombok.anyConstructor.addConstructorProperties ==== |
- | * TBD | + | |
+ | * 그 이전 버전에서는 '' | ||
+ | * 이게 기본 '' | ||
+ | * **기본 생성자를 생성하거나** : 이렇게 하면 기본 생성자로 객체 생성 후 reflection 으로 프라퍼티 값 주입 | ||
+ | * **스스로 생성자에 @ConstructorProperties 를 붙여주거나** | ||
+ | * '' | ||
+ | |||
+ | ==== 1.18.4 Field 에 붙은 annotation 이 setter 로 복사됨 ==== | ||
+ | * field 에 붙은 annotation 이 setter 로 복사되는데, | ||
+ | * **애초에 boolean 필드에는 is 를 안 붙이고 true/false 를 나타낼법한 형용사를 사용하는게 좋다.** | ||
+ | * 이유는 '' | ||
+ | * 즉, 일부 라이브러리([[java: | ||
+ | * 이 때 annotation 이 필드('' | ||
+ | * 실제 문제 발생 예) | ||
+ | <code java> | ||
+ | @JsonProperty(" | ||
+ | // 기존에는 이 필드와 Lombok이 생성한 '' | ||
+ | // 프라퍼티가 JSON 필드가 두 개로 생성됨. | ||
+ | // 그런데 이 JSON을 사용하는 개발자가 something 프라퍼티를 사용했다. | ||
+ | |||
+ | // 버전업 이후 아래와 같이 setter 에도 애노테이션이 복제됨. | ||
+ | @JsonProperty(" | ||
+ | boolean setSomething(boolean sohmething) { | ||
+ | ... | ||
+ | } | ||
+ | // 이로인해 Jackson 라이브러리는 setSomething/ | ||
+ | // '' | ||
+ | // something 프라퍼티 사용하던 곳은 모두 오류 발생. | ||
+ | </ |