본문 바로가기
IT/Java

@Builder.Default [lombok]

by 성준하이 2023. 12. 24.
반응형

자바에서 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

 

반응형

댓글