Lombok

2022. 9. 27. 16:12· dev/자바
목차
  1. @Getter/@Setter
  2. @ToString
  3.  
  4. @EqualsAndHashCode
  5. @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
  6. @Data
  7. @Builder
  8. @Log

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";
	}
}

 

 

참고사이트

https://mangkyu.tistory.com/78

'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
  1. @Getter/@Setter
  2. @ToString
  3.  
  4. @EqualsAndHashCode
  5. @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
  6. @Data
  7. @Builder
  8. @Log
'dev/자바' 카테고리의 다른 글
  • Spring Boot Build 없이 Run. 톰캣 서버 재기동 없이 수정 반영 class resource jsp 등등
  • eclipse maven프로젝트를 gradle로 변경
  • [자바] Eclipse 에서 DCEVM 사용하기(서버재구동안하기.)
  • JRABEL 라이센스발급, 설치
아디봉
아디봉
내인생의 카드는 몇장일까?
아디봉
내이른
아디봉
전체
오늘
어제
  • 분류 전체보기 (81)
    • 경제적자유 (11)
      • 경제노트 (4)
      • 부동산노트 (3)
      • 책리뷰 (1)
      • 유튜브 (2)
    • dev (50)
      • 사이드프로젝트 (0)
      • JavaScript (7)
      • 스프링 (5)
      • 자바 (11)
      • docker (7)
      • tdd (0)
      • DB (2)
      • mongoDB (1)
      • python (1)
      • react (9)
      • 인증.권한 (1)
      • 기타 (5)
      • HTTP (0)
      • JSP (1)
    • life (9)
      • 백패킹 (3)
      • 자기개발 (6)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • Object
  • log4j
  • Lombok
  • Eclipse
  • Oracle
  • Maven
  • 자바스크립트
  • logback
  • function
  • javascript
  • 롬복
  • Cookie
  • Java8
  • optional
  • React
  • Java
  • react 이벤트
  • javascript jsTree
  • 파란코끼리들의기적
  • 파코기
  • 자바
  • docker
  • 스프링데이터jpa
  • 객체
  • 백패킹
  • 정다르크
  • 쿠키
  • 옵셔널
  • jstree
  • web

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
아디봉
Lombok
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.