Spring

Lombok

Stater 2019. 11. 13. 09:00

Lombok

- 소스 간결화

- 도메인 클래스에 메소드를 반복적으로 작성하는 것을 편리하게 해줌

 

 

Lombok을 사용하는 이유

- 자바 파일을 컴파일할 때, 자동으로 생성자, Getter,Setter, toString() 같은 코드를 자동으로 추가 해준다.

  또한 Getter/Setter/toString() 부분에 대한 소스도줄어들어 소스의 간결화를 도와준다.

 

Lombok을 사용 전의 코드

package com.rubypaper.chapter01.domain;

import java.util.Date;

public class BoardVO {
    private int seq;
    private String title;
    private String writer;
    private String content;
    private Date createDate = new Date();
    private int cnt = 0;

    public int getSeq() {
        return seq;
    }

    public void setSeq(int seq) {
        this.seq = seq;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getWriter() {
        return writer;
    }

    public void setWriter(String writer) {
        this.writer = writer;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public int getCnt() {
        return cnt;
    }

    public void setCnt(int cnt) {
        this.cnt = cnt;
    }
}

Lombok 사용후의 코드

package com.rubypaper.chapter01.domain;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;

@Getter
@Setter
@ToString
public class BoardVO {
    private int seq;
    private String title;
    private String writer;
    private String content;
    private Date createDate = new Date();
    private int cnt = 0;
}

Lombok 기본적인 Annotation

어노테이션 기능
@Getter Getter 메소드를 만들어준다
@Setter Setter 메소드를 만들어준다
@RequiredArgsConstructor 모든 멤버변수를 초기화하는 생성자를 만들어준다
@ToString 모든 멤버 변수의 값을 문자열로 연결하여 리턴하는 toString() 메소드를 만들어준다.
@EqualsAndHashCode equals(),hashCode() 메소드를 만들어준다
@Data @Getter/@Setter/@RequiredArgsConstructor/@ToString/@EqualsAndHashCode 모두를 포함한다.

 

접근성 향상 / 개발자 비즈니스 로직에 집중 가능

 

 

반응형