Spring/Spring Boot

[Spring] 06. Lombok - getter, Setter, 기본타입 생성자 코드 중복 없애기

민돌v 2021. 11. 11. 16:16

Lombok

Lombok(롬복)이란, 자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메소드/ 생성자 등을 자동생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리이다.

ex) getter, setter

 

설치

1. 환경설정

  • Windows: Ctrl + Alt + S
  • macOS: command + ,

 

2. 검색창에 "Annotation Processors" 입력 후, dncmr " Enable ~" 체크하고  ok

 

3. Shift 두 번 누르고 plugins 입력 후 엔터

 

4. lombok 입력 후 아래처럼 생긴 아이콘의 우측 install 후 인텔리제이 재시작

5. 다시 Shift 두 번 누르고 plugins 입력 후 엔터

6. lombok 검색했을 때 installed 상태라면 설치 완료

 - 인텔리제이 프로젝트 세팅 시 설치했으면, installed에 위치

 

사용

  • Lecture.java
    • Lecture 클래스 Getter, NoArgsConstructor 적용
  • LectureService.java
    • LectureService 클래스 RequiredArgsConstructor 적용

 

ex) Lecture.class

@ 어노테이션으로 불필요한 코드 정의

ex)

Getter, Setter - 코드를 작성하지 않아도, get, ,set 함수 사용 가능

NoArgsConstructor - 매개변수가 없는 기본 생성자를 정의

RequiredArgsConstructor - 모든 멤버변수를 초기화하는 생성자를 정의

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import javax.persistence.*;

@NoArgsConstructor  //매개변수가 없는 생성자 코드 삭제(자동 생성)
@Getter
@Setter
@Entity // 테이블임을 나타냅니다.
public class Lecture extends Timestamped{

//    public Lecture() {}

    @Id // ID 값, Primary Key로 사용하겠다는 뜻입니다.
    @GeneratedValue(strategy = GenerationType.AUTO) // 자동 증가 명령입니다.
    private Long id;

    @Column(nullable = false) // 컬럼 값이고 반드시 값이 존재해야 함을 나타냅니다.
    private String title;

    @Column(nullable = false)
    private String tutor;

    public Lecture(LectureRequestDto requestDto) {
        this.title = requestDto.getTitle();
        this.tutor = requestDto.getTutor();
    }

    public Lecture(String title, String tutor) {
        this.title = title;
        this.tutor = tutor;
    }

    public void update(LectureRequestDto requestDto) {
        this.title = requestDto.getTitle();
        this.tutor = requestDto.getTutor();
    }
}