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 |