lombok (롬복의 특징, annotations)
참조문서 : https://projectlombok.org/
1. lombok 을 왜 쓰는가?
모델 Class (VO, DTO, Entity) 를 만들때, 제일 귀찮은 것이 생성자, 접근자, 설정자, toString() 등이라고 한다. 나는 별로 안 귀찮지만...ㅋㅋㅋ 그래도 lombok을 사용하면 @Getter, @Setter 같은 어노테이션만 붙이면 자동으로 해준다하니 알아보고 좋다면 써보자
기존 방식의 문제점
- 멤버변수를 제어하기위해 모델객체마다 반복적으로 메소드들을 생성해야 한다.
- IDE에서 generate 를 이용해서 편하게 생성할 수 있지만, 변수명이 바뀌면 다시 만들어야한다.
lombok의 특징
- 생성자, 접근자, 설정자, toString() 자동생성 라이브러리이므로 위와 같은 번거로움이 없다.
- 이외에도 다양한 기능들이 추가로 있다.
2. maven 에서 사용하기
pom.xml 에 추가, 아래는 현재 기준 최신 버전이다.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
3. 주로 사용하는 어노테이션
3-1. 접근자와 설정자 @Getter, @Setter
접근자와 설정자를 자동 생성해준다. 멤버변수 위에 선언해주면 된다. 클래스 위에 선언하면 전체 적용
3-2. 생성자
클래스 위에 쓴다.
- @AllArgsConstructor : 모든 변수로 생성자 생성
- @RequiredArgsConstructor : final 키워드나 @NonNull 된 멤버변수로만 생성자 생성
- @NoArgsConstructor : 기본 생성자 생성
3-3. toString()
@ToString 를 사용한다. @ToString(exclude = "password") 처럼 특정 필드를 제외시킬 수도 있다.
3-4. @EqualsAndHashCode
객체 비교 등의 용도로 사용되는 equals(), hashCode() 메소드의 코드를 생성해준다.
3-5. @Data
위에 있는 @Getter, @Setter, @RequiredArgsConstructor, @EqualsAndHashCode, @ToString 같은 걸 한번에 해준다.
3-6. 기타
- @NonNull : 변수 위에 사용한다, runtime시에 Null Check을 하여 NullPointerException이 발생하도록 한다.
출처: https://sjh836.tistory.com/137?category=680970 [빨간색코딩]
'Spring Framework > Spring Core' 카테고리의 다른 글
spring websocket (polling, Handshake 과정, sockjs, webSocketHandler, 예제) (0) | 2021.03.23 |
---|---|
spring의 다양한 intercept 방법 (Servlet Filter, HandlerInterceptor, PreHandle, AOP) (0) | 2021.03.23 |
Spring AOP (개념, 용어, 원리, 포인트컷 표현식, JoinPoint API) (0) | 2021.03.22 |
Controller에서 다양한 타입으로 Request 요청받기 (PathVariable, RequestParam, ModelAttribute, RequestBody) (0) | 2021.03.22 |
EHCache (ehcache-spring-annotations, ehcache.xml, @Cacheable) (0) | 2021.03.22 |
스프링프레임워크로 카카오 챗봇 만들기 (0) | 2021.03.22 |
HandlerMethodArgumentResolverComposite Class Composite 패턴 (0) | 2020.09.03 |
HATEOAS 사용하기 (0) | 2020.09.01 |