lombok이란?
어노테이션 기반으로 Getter, Setter, Equlas, ToString 등을 사용할 수 있다.
적용 전 getter, setter
public class BoardVO {
private String brdId;
public String getBrdId() {
return brdId;
}
public void setBrdId(String brdId) {
this.brdId = brdId;
}
}
적용 후 getter, setter
@Getter
@Setter
public class BoardVO {
private String brdId;
/*public String getBrdId() {
return brdId;
}
public void setBrdId(String brdId) {
this.brdId = brdId;
}*/
}
lombok 장점
어노테이션 기반의 코드 사용으로 생산성 향상
반복되는 코드를 줄여줌으로써 가독성 및 유지보수성 향상
Getter, Setter 외에 빌더 패턴이나 로그 생성 등 다양한 방면으로 활용
IntelliJ에서는 롬복은 기본플러그인 이라서 바로 사용하면 된다.
eclipse에서는 https://projectlombok.org/download 에서 다운로드 후 약간의 설정 과정을 거쳐 사용하면 된다.
lombok 어노테이션
lombok에서 사용가능한 어노테이션이다.
https://projectlombok.org/features/
@Getter/@Setter
lombok에서 가장 자주 활용하는 어노테이션이다. @Getter, @Setter을 클래스 이름에 적용시키면 모든 변수에 대해서 적용되며, 변수명 위에 적어주면 해당 변수들만 적용도 가능하다.
@Getter
public class boardVO extend Common {
@Setter
private String brdId;
private String brdId2;
private String brdId3;
}
@ToString
ToString 메소드를 자동완성 시켜준다.
제외시키고 싶다면 @ToString.Exclude 를 변수에 선언해주면 된다.
상속받은 상위클래스에도 ToString 적용시키고싶다면 @ToString(callSupter = true)를 적어주면 된다.
//@ToString(Exclude="brdId", callSuper = true)
@ToString
@AllArgsConstructor
public class boardVO extend Common {
@ToString.Exclude
private String brdId;
private String brdId2;
private String brdId3;
//@AllArgsConstructor 어노테이션으로 아래코드가 자동적용됨
/*public boardVO(String brdId, String brdId2, String brdId3) {
this.brdId = brdId;
this.brdId2 = brdId2;
this.brdId3 = brdId3;
}*/
}
@EqualsAndHashCode
equals함수와 hashCode함수를 자동으로 생성해 준다.
서로 다른객체에서 특정 변수의 값이 같은경우 같은 객체로 판단하고 싶을때
of = {"변수명", "변수명"} 사용한다.
@EqualsAndHashCode(of = {"brdId", "brdId2"}, callSuper = false)
public class boardVO extends Common {
@NonNull
private String brdId;
@NonNull
private String brdId2;
private String brdId3;
//@EqualsAndHashCode 어노테이션으로 equals함수 hashCode함수 자동생성해줌
}
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
AllArgsConstructor - 모든 변수의 생성자를 자동 완성시켜준다.
@Getter
@AllArgsConstructor
public class boardVO {
private String brdId;
private String brdId2;
private String brdId3;
//@AllArgsConstructor 어노테이션으로 아래코드가 자동적용됨
/*public boardVO(String brdId, String brdId2, String brdId3) {
this.brdId = brdId;
this.brdId2 = brdId2;
this.brdId3 = brdId3;
}*/
}
NoArgsConstructor - 기본 생성자를 자동 완성시켜준다.
@Getter
@NoArgsConstructor
public class boardVO {
private String brdId;
private String brdId2;
private String brdId3;
//@NoArgsConstructor 어노테이션으로 아래코드가 자동적용됨
//public boardVO() {}
}
RequiredArgsConstructor - 특정 변수의 생성자만을 자동 완성시켜준다. (@NonNull, final)
@Getter
@RequiredArgsConstructor
public class boardVO {
@NonNull
private String brdId;
private final String brdId2;
}
@Data
@Tostring, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 을 자동완성 시켜준다.
@Builder
@Getter
public class boardVO {
private String brdId;
private String brdId2;
private String brdId3;
private String brdId4;
private String brdId5;
private String brdId6;
@Builder
public boardVO(String brdId, String brdId2) {
this.brdId = brdId;
this.brdId2 = brdId2;
}
}
@Log
해당 클래스의 로그 클래스를 자동 완성 시켜준다.
@Log4j2
public class BoardController {
//private final Log LOGGER = LogFactory.getLog(BoardController.class);
@RequestMapping("/board/cateBoardList.do")
public String cateBoardListHandler(ModelMap model) {
log.error("error");
return "board/cateBoardList";
}
}
참고사이트
'dev > 자바' 카테고리의 다른 글
Spring Boot Build 없이 Run. 톰캣 서버 재기동 없이 수정 반영 class resource jsp 등등 (0) | 2022.11.08 |
---|---|
eclipse maven프로젝트를 gradle로 변경 (0) | 2022.10.13 |
[자바] Eclipse 에서 DCEVM 사용하기(서버재구동안하기.) (0) | 2021.02.19 |
JRABEL 라이센스발급, 설치 (0) | 2021.01.11 |
xss (cross site scriptiong) 처리 (0) | 2021.01.08 |