자바에서 Dto 생성시 Builder를 자주 사용한다.
자세한 내용은 아래 참고 포스팅을 참고 바란다.
이번엔 이 builder를 사용하게 될때 값을 default로 셋팅할수 있는 annotation을 가져왔다.
만약 코드에서
TestBuilderInDto newdto = TestBuilderInDto.builder().id("dtoid").build();
이렇게 되어있고,
TestBuilderInDto 가
@Data @Builder @AllArgsConstructor public class TestBuilderInDto { private String id; private String name; } |
이렇게 되어있다면
newdto 는 id 값만 설정이 되어서 객체가 생성이 된다.
name에 default로 홍길동이라는 값을 넣어주고 싶다면
@Builder.Default private String name="홍길동"; |
이렇게 추가 해주면 된다.
근데 DTO를 자세히 살펴보면 AllArgsConstructor 은 존재하지만 NoArgsConstructor 가 존재하지 않는것을 알수 있다.
default값이 존재하기에 비어있는 객체를 만들수 없기에 함께 사용이 불가능하다.
다른 내용이지만 아래 참고포스팅에 ArgsConstructor annotation에 대한 내용이 있으니 읽어보는것도 도움 될것이다.
참고 포스팅
https://thenicesj.tistory.com/372
@builder annotation
jpa를 사용중에 entity를 사용하게 되면 일반적인 DTO 와는 다르게 annotation을 주의해서 써야한다. 대표적으로 setter 가 있긴하지만 그 밖에도 builder 부분에서 주의를 해줘야한다. 서비스 단에서 builde
thenicesj.tistory.com
https://thenicesj.tistory.com/658
[Lombok] @Builder 사용 시 @NoArgsConstructor 에러
자바 스프링에서 Lombok을 사용하여 개발하는 개발자들이 요즘엔 대부분일것이다. lombok 셋팅 관련해서는 아래 참고포스팅 참고 바란다. 특정 DTO를 사용시 객체 생성을 위해 Builder annotation를 사용
thenicesj.tistory.com
'IT > Java' 카테고리의 다른 글
숫자 자리수 0으로 채우기 (37) | 2023.12.28 |
---|---|
@ColumnDefalut Annotation (35) | 2023.12.27 |
marshalling / unmarshalling (직렬화와의 차이 feat. 코드베이스) (26) | 2023.12.20 |
JSONObject 에 대해서 (24) | 2023.12.19 |
Java 에서 Redis 사용하기 (@RedisHash , ValueOperations) (34) | 2023.12.06 |
댓글