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파일로 가서 붙여넣기
저장 후 프로젝트 우클릭 - Maven - Update Project 클릭해서 프로젝트 업데이트하고 껐다 켜기!
package explore에서 Maven Dependeicies 에 lombok이 설치 된 것을 확인할 수 있다.
설치를 완료헀다면
롬복 제대로 작동하는지 확인해보기 위해 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());
}
}
'Spring' 카테고리의 다른 글
[STS_세팅 가이드] Log4j (워드 파일 보고 수정하기) (0) | 2022.08.04 |
---|---|
[STS_세팅 가이드] log4j에서 log4j2로 migration 하기 (미완)(워드파일 내용 포스트에 보기 좋게 다시 정리해놓기) (0) | 2022.08.04 |
equals(), hashcode() (펌) (0) | 2022.08.03 |
[STS_세팅 가이드] STS JDK 버전 업그레이드 1.6 → 1.8 (ArrayList 1.7이상부터 사용 가능) __ + 근데 JDK 11필요! 더 업그레이드 해야됨 (0) | 2022.08.03 |
03_의존성 주입 (@Controller, @Autowired, @Component 어노테이션 이용) [STS_세팅 가이드] (0) | 2022.08.02 |