본문 바로가기
Java/Library

lombok #1 [@Data, @NonNull, @*ArgsContructor, @Builder]

by Lee David 2020. 7. 2.
반응형

lombok

  • Maven
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <scope>provided</scope>
</dependency>

사실 lombok하면 Dao 객체에 코드 줄이는 용도로만 주로 사용했습니다.

그러다 해외에 java에 관련하여 자세히 정리되어 있는 웹페이지를 접하고 새로운 내용들을 조금씩 접하다 자료 정리겸 글을 적습니다.

 

  • Getter/Setter
    • @Data
      클래스 상단에 써서 파라미터들을 getter 혹은 setter를 생략하고 사용할 수 있게 해줍니다.
    • @NonNull
      파라미터 앞에 써주면 해당 파라미터를 선언시에 Null이 주입되면 NullPointerException이 발생됩니다.
  • Constructor
    • @NoArgsConstructor
      미리 선언된 비어있는 생성자를 선언하고 생성하는 것과 동일하게 동작됩니다.
    • @AllArgsConstructor
      앞선 어노테이션의 반대로 getter, setter가 적용되는 모든 파라미터를 요구하는 생성자를 선언 없이 생성 할 수 있습니다.
    • @Builder
      만약에 파라미터가 7~8개만 되더라도 소괄호 안에 무엇부터 넣어야 할지 까먹는 경우가 부지기수일텐데요. 이럴때 파라미터 주입등의 실수를 막아줄때 많이 사용 됩니다.
  • 예제 코드
//-------------- new로 객체 생성 ------------------

@Data
@NoArgsConstructor
@AllArgsConstructor
public User {
	private String name;
    private String address;
    pirvate String id;
}

User user = new User(); //@NoArgsConstructor
User user = new User("말라뮤트", "서울", "Mala"); //@AllArgsConstructor

//---------------- Builder로 객체 생성 ----------------

@Data
@Builder
public User {
    @NonNull private String name;
    private String address;
    pirvate String id;
}

User user = User.builder() // @Builder 아래 값들 중에 @NonNull이 선언되지 않으면 옵션값이 됩니다.
                .name("보더콜리") // @NonNull이 선언되어 있으면 Null을 제외한 값을 넣어주세요.
                .address("경기도")
                .id("Coli")
                .build();

lombok 대표 이미지 입니다.

반응형