Spring

[Spring] Lombok

Unan 2023. 4. 19. 23:42
반응형

 

Java, Spring에서 자주 사용하는 반복되는 code들을 Annotation으로 구현하여 간편하게 표현할 수 있도록 도와주는 라이브러리이다.

의존성 추가

dependencies {
  implementation 'org.projectlombok:lombok:1.18.22'
  compileOnly 'org.projectlombok:lombok'
  annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.projectlombok:lombok:1.18.22'
}

@Getter, @Setter

Getter와 Setter를 @Getter, @Setter annotation을 사용하여 아래 코드와 같이 반복된 코드를 작성하지 않고, 쉽게 사용할 수 있다.

Public class Member {
  private String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.bame
  }
}

생성자 Annotation

  1. 생성자를 자동으로 생성해주는 annotation이다.
  2. acceess를 paramter로 갖고 있어 접근 level을 설정할 수 있다.
  3.  @NoArgsConstructor 
    • Parameter가 없는 기본생성자 생성
    @AllArgsConstructor
    • 모든 필드 값을 파라미터로 받는 생성자 생성
    @RequiredArgsConstructor
    • final 이나 @NonNull인필드 값만 파라미터로 받는 생성자를 만들어줍니다. 아래 코드와 같이 MemberRepository 객체를 선언한 후에 annotation을 달아주면, 생성자를 만들어준다.
@Service
@RequiredArgsConstructor
public MemberService {
    private final MemberRepository memberRepository;

      ...

   }

@Data

@Data Annotation은 아래 Annotation들을 모두 포함하고 있다.

  • @Getter, @Setter
  • @RequiredArgsConstructor
  • @ToString
  • @EqualsAndHashCode

data class에서 많이 사용되는 Annotation들을 포함하고 있는 것 같다. DTO를 사용할 때 많이 자주 사용하는 annotation이다.

@Data
public class UserDto {
    private Long id;
    private String nickname;

    @Builder
    public UserDto(Long id, String nickname) {
        this.id = id;
        this.nickname = nickname;
    }

}

References

 

반응형