본문 바로가기
반응형

builder4

@Builder.Default [lombok] 자바에서 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로.. 2023. 12. 24.
[Lombok] @Builder 사용 시 @NoArgsConstructor 에러 자바 스프링에서 Lombok을 사용하여 개발하는 개발자들이 요즘엔 대부분일것이다. lombok 셋팅 관련해서는 아래 참고포스팅 참고 바란다. 특정 DTO를 사용시 객체 생성을 위해 Builder annotation를 사용할때가 있다. 사용법은 아래 참고포스팅을 참고 바란다. 그리고 객체 생성자를 위해서 RequiredArgsConstructor / NoArgsConstructor / AllArgsConstructor 를 사용해주는데 여기서 Builder 랑 NoArgsConstructor 두개만 사용할 경우 에러가 난다. 이유는 간단하다. 모든 멤버변수를 받는 생성자가 없는 것이 이유이다. 일부 멤버변수만 갖는 생성자 함수만 존재할 경우에도 같은 에러가 나타난다. 이럴 경우엔 AllArgsConstruc.. 2023. 8. 15.
객체 생성 방법 ( 생성자 / 정적팩토리메서드 / builder) 자바에서는 객체 생성을 하기 위해 다음 세가지 방법을 주로 쓰곤 한다. 하나씩 살펴보면 다음과 같다. 생성자 말그대로 새롭게 빈 객체/혹은 값을 채워진 상태로 객체를 생성하는 것이다. new 를 사용하여 생성을 하며 아래와 같이 사용을 한다. Member member = new Member(); 정적 팩토리 메서드 정적 팩토리 메서드는 메서드를 사용해서 객체를 생성하는 것이다. 그럼 해당 객체의 class 안에 new Member() 를 리턴해주는 메서드를 만들어도 되고, 다양한 방법으로 값을 채우고 리턴해주는 새로운 객체를 부르는 메서드를 만들고 나서 Member member = createOf("name"); 이런식으로 하고 객체의 클래스에는 public class Member { private St.. 2022. 11. 27.
@builder annotation jpa를 사용중에 entity를 사용하게 되면 일반적인 DTO 와는 다르게 annotation을 주의해서 써야한다. 대표적으로 setter 가 있긴하지만 그 밖에도 builder 부분에서 주의를 해줘야한다. 서비스 단에서 builder를 사용하지 않고 만약 Member member = new Member(); 라고 member를 생성하게 된다면 구문적으로는 틀린 부분이 없지만 persistence 부분에서는 빈값이 되어버려서 에러가 발생한다. 그럴경우에 생성자를 사용할때 new 가 아니라 build를 사용해줘야한다. 사용법은 아래와 같다. 만약 entity 가 int id; String name; 두개만 있다는 가정 하에 Member member = Member.builder().id(1).name("n.. 2022. 10. 26.
반응형