1. Lombok(롬복)이란?
프로젝트가 객체 중심으로 개발하던 데이터 중심으로 개발하던 개발자들은 VO/DTO/Domain 객체를 생성해 getter/setter 그리고 toString 메서드를 만듭니다. 처음에 개발 초기에는 깔끔하게 하지만 잦은 수정과 필드명 변경 추가에 따라 관리가 쉽지 않습니다.
그래서 롬복(Lombok)은 자바 클래스를 만들때 자주 사용되는 getter/setter나 toString 등의 코드를 애너테이션으로 대체해서 선언하고 java 코드를 컴파일 할 때 그에 맞는 코드를 생성해주는 것이다.
2. Lombok 의존성 추가 및 설치
Lombok 의존성 추가
Lombok 외부라이브러리를 사용하기 위해 의존성을 추가하고, 컴파일 시 새로운 플러그인 에러이슈 떄문에 아래와 같이 의존성 및 설정을 추가한다.
프로젝트 생성 시 Lombok를 생성했으면 추가 할 필요 없다.
build.gradle
configurations { compileOnly { extendsFrom annotationProcessor } } dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' }
Lombok 다운로드
Lombok 다운로드 - https://projectlombok.org/download
Lombok 실행
다운받은 lombok.jar 파일을 실행하기 위해서
- 1 . cmd 창 접속
- 2 . 해당 프로젝트 JDK 설치 경로 이동$ C:\project\neo\Java\jdk1.8.0_221\bin
- 3 . lombok.jar 파일 실행$ java -jar c:\project\neo\lombok.jar
해당 프로젝트 Eclipse 선택
Eclipse에 설치
이렇게 설치는 끝이다.
3. Lombok 적용
Ecplise 내 Generate 기능
Eclipse 내에 있는 기능을 사용할 경우 필드명을 수정하거나 추가 삭제 할 경우 작업이 많이 그에 따른 toString 메서드 또한 작업이 필요하다.
boardDto.java
package neo.apps.board.dto; private static final long serialVersionUID = 1L; public int boardIdx; public String title; public String content; public int hitCnt; public String regId; public String regDate; public int getBoardIdx() { return boardIdx; } public void setBoardIdx(int boardIdx) { this.boardIdx = boardIdx; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public int getHitCnt() { return hitCnt; } public void setHitCnt(int hitCnt) { this.hitCnt = hitCnt; } public String getRegId() { return regId; } public void setRegId(String regId) { this.regId = regId; } public String getRegDate() { return regDate; } public void setRegDate(String regDate) { this.regDate = regDate; } @Override public String toString() { return "BoardDto [boardIdx=" + boardIdx + ", title=" + title + ", content=" + content + ", hitCnt=" + hitCnt + ", regId=" + regId + ", regDate=" + regDate + "]"; } }
Lombok 애너테이션 사용
boardDto.java를 아래와 같이 코드가 전부이다. 애너테이션을 선언함으로써 개발자가 구현 할 개발 코드는 줄어들게 되고 그에 따른 추가 작업이 줄어든다.
간단한 기능만 설명하면 @Getter @Setter 애너테이션은 보시다시피 getter/setter를 대신하고 @ToString은 toString() 메서드를 대신한다.
boardDto.java
@Getter @Setter @ToString package neo.apps.board.dto; public Integer boardIdx; public String title; public String contents; public int hitCnt; public String regId; public String regDate; }
필드 출력
// 상세정보 BoardDto boardDetail = this.boardService.selectBoardDetail(request, boardIdx); System.out.print(boardDetail);
Generate toString()
BoardDto [boardIdx=2, title=테스트 제목 2, content=테스트 게시판 내용입니다. 2, hitCnt=3, regId=admin, regDate=2019-08-24]
Lombok 사용시
BoardDto(boardIdx=2, title=테스트 제목 2, content=테스트 게시판 내용입니다. 2, hitCnt=3, regId=admin, regDate=2019-08-24)
4. Lombok 애너테이션 추가 설명
Lombok 애너테이션 설명
출처 : https://linked2ev.github.io/gitlog/2019/08/25/springboot-mvc-7-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-Lombok(%EB%A1%AC%EB%B3%B5)-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/
'Study > SpringBoot' 카테고리의 다른 글
[SpringBoot] 스프링 부트 배치 (0) | 2021.11.05 |
---|---|
[SpringBoot] REST 애플리케이션 예외처리 (0) | 2021.11.05 |
[Spring Boot] application.properties -> application.yml로 변경하기. (0) | 2021.11.04 |
Spring Boot에서 외부 경로 매핑 (1) | 2020.11.20 |
SpringBoot with JPA2 (0) | 2020.01.20 |
댓글