본문 바로가기

Spring

[STS_세팅 가이드] Lombok 설치

Lombok

어노테이션을 통해 반복적으로 사용하는 코드를 자동완성 해주는 라이브러리 

주로 VO, DTO, Entity 관련 작업을 처리함

 

Annotation

 

@Data

@Getter, @Setter, @toString, @EqualsAndHashCode, @RequiredArgsConstructor 전부 포함


@Getter

모든 필드에 대해 Getter 생성

@Setter

모든 필드에 대해 Setter 생성

@toString

해당 데이터 클래스의 toString 생성

@NoArgsConstructor

기본 생성자 생성

@RequiredArgsConstructor

@NonNull이 붙은 필드만 포함된 생성자를 생성

@AllArgsConstructor

모든 필드를 포함한 생성자 생성

 

( 보통 @Data, @NoArgsConstructor  형태로 많이 붙이는듯 )

@EqualsAndHashCode

해당 클래스의 equals()와 hashcode()를 자동생성해준다. (오버라이드 할 수 있도록)

 

equals() : 각 인스턴스가 같은지 비교 해줌
hashcode() : 각 인스턴스의 고유 값 (메모리상의 주소) 리턴

 

equals()와 hashCode()를 같이 생성해주는 이유

https://cinnamonlover.tistory.com/234 

 

equals(), hashcode() (펌)

https://steady-coding.tistory.com/534 [Java] 동일성(identity)과 동등성(equality) java-study에서 스터디를 진행하고 있습니다. 동일성 동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미한다.

cinnamonlover.tistory.com

 

 


 

 

 

Lombolk 설치

 

구글에 Lombok 검색

Lombok 라이브러리 설치 가이드

 

 

https://projectlombok.org/download

 

다운로드 클릭

 

완료 되면 다운 받은 lombok.jar 실행

 

처음엔 이렇게 IDE를 찾을 수 없다고 뜰 것

그러면 

이렇게 STS 설치해놓은 폴더 등록해주면 됨

 

나의 경우 아래의 경로로 등록함 

 

설치 성공 Finish 클릭

 

등록한 경로로 가서 설치 잘 됐는지 확인

 

 

이제 메이븐 레포지토리로 가서

https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.24

 

롬복 검색 후 코드 복사

 

pom.xml파일로 가서 붙여넣기

위치는 상관 없지만 JUnit <dependency> 코드 위에 붙여주겠음

저장 후 프로젝트 우클릭 - Maven - Update Project 클릭해서 프로젝트 업데이트하고 껐다 켜기!

 

 

package explore에서 Maven Dependeicies 에 lombok이 설치 된 것을 확인할 수 있다.

설치된 거 확인

 

 

 

 


 

 

 

 

 

설치를 완료헀다면

롬복 제대로 작동하는지 확인해보기 위해 Apple 데이터 모델 만들어보자

 

 

src/main/java - com.ezen.model에 Apple클래스 생성

 

이렇게 클래스 위에 @Data 어노테이션을 달아주면 

 

 

패키지 익스플로러에서 Apple클래스 밑에 뭐가 여러가지 생성된 것을 확인할 수 있다.

자세히 보면 getter, setter, toString, 생성자 ... 원래 수동/반자동으로 달아줘야 했던 것들이다!

정말 편리한 기능!

 

 

 

 

 

사용 예시. 

 

 

package com.ezen.springmvc.model;

import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.ToString;

@EqualsAndHashCode
@NoArgsConstructor //Apple() 생성
@RequiredArgsConstructor //@nonNull이 붙은 필드만 가지고 생성자 생성
@AllArgsConstructor //Apple(int int, boolean, boolean) 생성
@ToString
@Getter
//@Setter 아래에 원하는 변수(size, price)만 @Setter설정해주고 싶으면 이 @Setter는 지워야 됨.
//@Data //롬복 어노테이션

public class Apple {
	
	@NonNull
	@Setter //이렇게 하면 size에만 getter 달림
	private Integer size; //@NonNull is meaningless on a primitive. 라고 떠서 int를 Integer로 바꿔줌
	@NonNull
	@Setter
	private Integer price;
	private boolean red;
	private boolean fresh; 
	
	public static void main(String[] args) {
		System.out.println(new Apple());
	}
}