개발/Spring

[Spring] - Builder 패턴

dongdev 2021. 11. 21. 16:48

Lombok을 활용한 Builder 패턴.

@NoArgsConstructor 파라미터가 없는 기본 생성자 생성
@AllArgsConstructor 모든 필드 값을 파라미터로 받는 생성자 생성
@RequiredArgsConstructor final이나 @NonNull인 필드 값만 파라미터로 받는 생성자 생성

 

@NoArgsConstructor
@AllArgsConstructor
@Builder 
public class User {

    private String name;
    private int age; 
    private int height; 
    private String phone; 
    
}
User user = User.builder() 
                .name("홍길동") 
                .age(28) 
                .height(180) 
                .phone("01012345678").build();

 

 

+추가)

@Builder(toBuilder=true) : builder 패턴으로 생성된 값의 일부 값을 변경하여 새로운 객체 생성함.

User user2 = user.toBuilder()
                .name("김철수")
                .age(15).build();
                // name, age 만 변경하여 새로운 객체를 생성.