해당 글은 Spring Boot 내에 Lombok을 구성하는 방법에 대해서 작성하였습니다.
![](https://t1.daumcdn.net/keditor/emoticon/face/large/073.png)
1) 적용 개발환경
개발 환경 | 버전 |
java | 1.8 |
Spring Boot | 2.7.4 |
빌드관리도구 | Gradle 7.5 |
개발 툴 | IntelliJ IDEA 2022.3 |
2) Lombok
💡 Lombok
- Java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리입니다. 이는 코드의 가독성을 향상시키고 개발 생산성을 높일 수 있습니다.
- 어노테이션을 사용하여 코드를 간결하게 작성하고, 컴파일 시점에서 필요한 코드를 자동으로 생성합니다. 따라서 Lombok을 사용하면 개발자는 더 적은 노력으로 효율적인 코드를 작성할 수 있습니다.
1. Lombok 설치하기
💡 Spring Boot 내에 IntelliJ IDEA 툴을 이용하여 Lombok을 설치합니다.
1.1. spring boot initializr를 이용한 Lombok 설치
💡 프로젝트 초기 구성시 Developer Tools - Lombok을 선택하여 구성합니다.
1.2. 빌드 관리도구에 라이브러리 추가
💡 의존성에 Lombok을 추가합니다.
dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
}
2. IntelliJ 플러그인을 설치합니다.
💡 IntelliJ 2020.3 버전 이후부터는 플러그인 추가 없이 내장 설치가 되어있습니다.
💡 IntelliJ 이하 버전인 경우 File - Proferences… - plugin - Lombok을 선택하여 설치 혹은 활성화를 합니다.
IntelliJ IDEA
projectlombok.org
3) Lombok Annotation
💡 Lombok에서 자주 사용하는 어노테이션에 대해 각각 알아봅니다.
Annotation | 설명 |
@Getter | 해당 어노테이션을 선언하면 자동으로 getXXX() 메서드를 사용 가능하게 해줍니다. |
@Setter | 해당 어노테이션을 선언하면 자동으로 setXXX() 메서드를 사용 가능하게 해줍니다. |
@Data | 해당 어노테이션을 선언하면 getter(), setter(), equals(), hasCode(), toString() 메서드 사용 가능하게 해줍니다. (@Getter @Setter @toString @EqaulsAndHashCode @RequiredArgsConstructor을 자동 생성해줍니다. |
@ToString | 해당 어노테이션을 선언하면 toString() 메서드를 사용 가능하게 해줍니다. |
@AllArgsConstructor | 해당 어노테이션을 선언하면 ‘모든’ 인자를 가지는 생성자를 구성합니다. |
@RequriedArgsConstructor | 해당 어노테이션을 선언하면 ‘필수’ 인지를 가지는 생성자를 구성합니다. |
@NoArgsConstructor | 해당 어노테이션을 선언하면 ‘인자가 없는’ 생성자를 구성합니다. |
4) 사용 예시
💡 VO 구성
@Getter
@Setter
@ToString
@NoArgsConstructor
public class TemplateVO {
private Integer templateId;
private String templateName;
private String templateEtc;
}
💡 Service implements 구성
public class TemplateServiceImpl implements TemplateService {
public List<TemplateVO> selectTempList() {
TemplateVO tVo = new TemplateVO(); // @NoArgsConstructor 사용
tVo.getTemplateId(); // @Getter 사용
tVo.setTemplateId(1); // @Setter 사용
tVo.toString(); // @ToString 사용
// 기타 참고
TemplateVO tVo = new TemplateVO(1 ,"test", "test"); // @AllArgsConstructor 사용
}
}
💡 각각의 칼럼마다 수행할 수 있습니다
@NoArgsConstructor
public class TemplateVO {
@Getter @Setter
private Integer templateId;
private String templateName;
private String templateEtc;
}
5) 참고
💡 [참고] Lombok을 이용한 심화 과정에 대해서 이해하고 싶으시면 아래의 글을 참고하시면 도움이 많이 됩니다.
[Java] 생성자 패턴 이해하기 : 점층적 생성자, 자바 빈즈, Builder 패턴)
해당 글에서는 생성자 패턴에 대해서 이해하고, 어떤 패턴으로 생성자를 구성하는 것이 좋을지에 대해서 공유합니다. 1) 생성자 패턴의 종류 1. 점층적 생성자 패턴 (Telescoping Constructor Pattern) 💡
adjh54.tistory.com
[Java] 생성자 패턴 - Builder() 심화 속성 이해하기 : Lombok Annotation
해당 글에서는 생성자 패턴 중 Builder() 패턴을 기반으로 상세 속성을 이용하여 심화 내용의 이해를 돕기 위한 목적으로 작성한 글입니다. 💡 해당 글은 이전에 작성한 Builder() 생성자 패턴에 대
adjh54.tistory.com
[Java/Library] Lombok 이해하고 적용하기 -2 : 심화 및 적용
해당 글에서는 이전에 작성한 Lombok 환경 설정 및 이해 글에 이어서 Lombok을 활용하여 심화 활용 기능에 대해 확인합니다. 💡 Lombok 설정 및 기초에 대해서 이해하고 싶은 경우 하단의 이전에 작성
adjh54.tistory.com
99) 기타 꿀팁
1. is- 접두사로 시작하는 변수
💡 변수명이 is- 접두사로 시작하는 변수 일 경우
- lombok으로 getter / setter를 사용하면 is에 대해서 인식을 안 합니다.
- 예를 들어서 isActive라는 칼럼이 있다면 setIsActive() 나 getIsActive()가 아닌 setActive(), getActive()로 사용이 됩니다
2. STS에서 Lombok 설치방법
💡 아래 블로그에 잘 정리해 주신 분이 있어서 참고하였습니다.
맥OS / STS에 lombok 설치하기
1. 다운로드 lombok 다운로드 : https://projectlombok.org/download Download projectlombok.org 아니면 첨부 한 것을 받는다. 2. 터미널로 롬복 위치로 이동 터미널을 열고 다운로드 폴더로 접근한다. cd downloads 3. 롬
devmg.tistory.com
오늘도 감사합니다😀
'Java > Spring Boot' 카테고리의 다른 글
[Java] Spring Boot Validation 이해하기 : 데이터 유효성 검증 (4) | 2022.11.08 |
---|---|
[Java] Thymeleaf, Thymeleaf Layout 적용하기 (6) | 2022.10.30 |
[Java] HikariCP 이해하고 적용하기 (with. MyBatis) (0) | 2022.10.20 |
[JAVA] Spring Boot내에서 MyBatis & PostgreSQL 연동하기 (0) | 2022.10.04 |
[Java/IntelliJ] Spring Boot Devtools 이해하고 설정하기 (2) | 2022.09.29 |