[Spring] lombok - VO 클래스를 간단하게 (설치시 에러해결)
- 웹/Spring
- 2021. 8. 5.
Lombok
- 어노테이션만 사용하면 자바데이터 클래스 스타일의 객체로 만들어주는 라이브러리
Lombok 설치
Spring 프로젝트에서 Lombok을 사용하기 위해선 라이브러리와 pom.xml업데이트 둘 다 해야한다.
1. 라이브러리 다운 및 설치
https://projectlombok.org/download
위 홈페이지에서 버튼을 눌러 jar파일 다운로드를 한다.
다운이 완료 되었으면 lombok.jar를 더블클릭해서 실행한다.
(더블클릭 안 될 경우 cmd에서 lombok.jar를 받은 폴더로 이동한 뒤 java -jar lombok.jar 명령어를 실행한다.)
실행하면 위와같은 창이 뜨는데 Specify location... 을 눌러서 이클립스 실행파일을 선택한 후 Install/Update를 하면 설치가 완료되고 이클립스를 재실행 하면 된다.
※ 만약 이클립스 설치 경로에 한글이 있다면 전부 영어로 변경한 후 Install/Update를 실행 한다. (안하면 이클립스 실행 안됨)
혹시 경로에 한글이 존재하는 상태에서 실행을 했다면
1. 경로내에 모든 한글을 영어로 변경한다.
2. 이클립스 실행파일이 있는 폴더에서 eclipse.ini를 수정해주면 된다.
3. 위의 -javaagent에 새로 변경한 경로로 다시 작성한후 저장한다.
2. pom.xml에 추가
pom.xml에 위에서 설치한 lombok.jar 파일과 같은 버전을 받아서 추가한다.
1
2
3
4
5
6
|
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
|
cs |
여기까지 완료 했다면 설치는 끝.
Lombok 어노테이션
어노테이션 | 설명 |
@Getter | 모든 필드에 getter를 자동으로 생성 |
@Setter | 모든 필드에 setter를 자동으로 생성 |
@Data | 클래스 내부의 모든 필드에 대해 getter/setter를 생성, toString, equals, hashCode 오버라이드, final, @NonNull이 붙은 필드값을 포함하는 생성자 생성 |
@NonNull | 해당 필드에는 반드시 값이 있어야 함을 표시한다. |
@ToString | 모든 필드값을 출력하는 toString()을 알아서 오버라이드 |
@NoArgsConstructor | 기본 생성자를 자동으로 생성 |
@AllArgsConstructor | 모든 필드값을 채우는 생성자 자동으로 생성 |
@RequiredArgsConstructor | @NotNull이 붙은 필드만 채우는 생성자 생성 |
@EqualsAndHashConde | equals와 hashCode를 알아서 생성 |
@Log4j | Log4j 연결을 자동으로 생성 |
Lombok 사용 예제
@NoArgsConstructor // 기본 생성자 생성
@RequiredArgsConstructor //NonNull이 붙은 필드의 생성자만 생성
@AllArgsConstructor // 모든 필드의 생성자 생성
@Getter // getter
@Setter // setter
@ToString // ToString
public class Employee {
@NonNull // NonNull
private int employee_id;
private String first_name;
private @NonNull String last_name;
private @NonNull String email;
private int department_id;
}
위와 같이 작성하면 코드상에는 보이지 않지만
getter/setter , 생성자3개 (기본, @NonNull이 붙은 필드, 모든 필드), ToString이 존재하는 클래스가 된다.
아래처럼 클래스 파일을 펼쳐서 생성된 것을 확인할 수 있다.
'웹 > Spring' 카테고리의 다른 글
[Spring] Controller 컨트롤러 #RequestMapping (0) | 2021.08.09 |
---|---|
[Spring] log4j 로그를 효율적으로 사용 (0) | 2021.08.06 |
[Spring] JUnit5 반복 테스트 (0) | 2021.08.04 |
[Spring] JUnit4 단위 테스트 (0) | 2021.08.03 |
[Spring] Log4j Cannot find DTD 에러 (0) | 2021.08.02 |