[ LOMBOK ] @Build, @AllArgsConstructor, @NoArgsConstructor, @RequiredArgsConstructor
2022. 12. 8. 21:26ㆍETC
반응형
@AllArgsConstructor
@NoArgsConstructor
@RequiredArgsConstructor
위 3개의 Annotation은 생성자에 관한 것입니다!
( 주의 : @NotNull이 아니라 @NonNull입니다! )
해당 DTO를 예제로 설명하겠습니다!
@NoArgsConstructor
파라미터가 없는 기본 생성자 생성
@AllArgsConstructor
모든 필드 값을 파라미터로 받는 생성자 생성
@RequiredArgsConstructor
final이나 @NotNull인 필드 값만 파라미터로 받는 생성자 생성
여기서 문제가 하나 있습니다.
@AllArgsConstructor를 보시면 DTO에 선언한 순서로 값을 할당해줬죠?
필드의 Type이 같은 해당 DTO에서 예시를 들어보겠습니다.
이렇게 실수로 값을 넣었을 때 오류를 뱉지도 않고
엉뚱한 곳에 엉뚱한 값이 들어가겠죠?
지금은 2개밖에 없지만
10개... 20개...
이렇게 많아진다면??
일일이 DTO에 들어가서 확인하고 작성하고 해야겠죠...
이제 그 부분을 보안할 방법을 알려드릴게요!
바로 @Builder Annotation을 사용할 겁니다~~
해당 Annotation에 커서를 올리면
이렇게 알아서 코드를 작성해준다고 하네요!
Builder Pattern을 적용해보면
짜자잔!!!!
순서를 맞출 필요도 없고
되게 예쁘게 생기지 않았나요??
간단하게 설명하자면
기본 생성자는 New를 사용하지만
Builder Pattern은 New를 사용하지 않습니다.
.builder()는 "나 이제 시작해!"
.build() "나 끝났어!"
라고 생각하시면 됩니다~
반응형
'ETC' 카테고리의 다른 글
MSSQL 연결 시 드라이버가 SSL(Secure Sockets Layer) 암호화를 사용하여 SQL Sever로 보안 연결을 설정할 수 없습니다 (0) | 2023.10.11 |
---|---|
Connection pool (0) | 2023.01.06 |
의존성 주입 (0) | 2022.12.08 |
clean code[ 1 ] - 매핑관계 (0) | 2022.11.12 |
Vim 사용법 (0) | 2022.11.09 |