반응형
해당 글은 Spring Boot 내에 Lombok을 구성하는 방법에 대해서 작성하였습니다.
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을 선택하여 설치 혹은 활성화를 합니다.
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을 이용한 심화 과정에 대해서 이해하고 싶으시면 아래의 글을 참고하시면 도움이 많이 됩니다.
99) 기타 꿀팁
1. is- 접두사로 시작하는 변수
💡 변수명이 is- 접두사로 시작하는 변수 일 경우
- lombok으로 getter / setter를 사용하면 is에 대해서 인식을 안 합니다.
- 예를 들어서 isActive라는 칼럼이 있다면 setIsActive() 나 getIsActive()가 아닌 setActive(), getActive()로 사용이 됩니다
2. STS에서 Lombok 설치방법
💡 아래 블로그에 잘 정리해 주신 분이 있어서 참고하였습니다.
오늘도 감사합니다😀
반응형
'Java > Spring Boot' 카테고리의 다른 글
[Java/Library] Slf4j - Log4j2 이해하고 설정하기 (2) | 2022.10.21 |
---|---|
[Java/Library] HikariCP 이해하고 적용하기 (with. MyBatis) (0) | 2022.10.20 |
[Java/Library] Spring Boot 2.x 환경에서 Swagger 이해하고 적용하기 : SpringDoc openAPI UI (2) | 2022.10.18 |
[JAVA] Spring Boot내에서 MyBatis & PostgreSQL 연동하기 (0) | 2022.10.04 |
[Java/IntelliJ] Spring Boot Devtools 이해하고 설정하기 (2) | 2022.09.29 |