Lombok이란?
Lombok은 java 자동화 플러그인이다. 반복되는 Getter, Setter 메서드를 줄여줌으로써 유지보수 및 코드 가독성을 향상시킨다. Getter, Setter 말고도 유용한 기능들이 어노테이션으로 제공되서 아주 편리한 라이브러리라고 할 수 있다.
추가방법
lombok라이브러리를 gradle에 추가하는 자세한 방법 바로가기
1. 의존성 추가
implementation 'org.projectlombok:lombok'
2. 프로젝트 우클릭 - Gradle - Refresh Gradle Project 클릭
사용방법
1. @Getter, @Setter, @ToString
기존 방법
기존의 getter, setter, toString을 사용하려면 이렇게 나열해야 했다.
package com.example.test.vo;
public class TestVo {
private String UserId;
private String UserPw;
private String UserName;
public String getUserId() {
return UserId;
}
public void setUserId(String userId) {
UserId = userId;
}
public String getUserPw() {
return UserPw;
}
public void setUserPw(String userPw) {
UserPw = userPw;
}
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
@Override
public String toString() {
return "TestVo [UserId=" + UserId + ", UserPw=" + UserPw + ", UserName=" + UserName + "]";
}
}
여간 귀찮은게 아니다.
필드값이 새로 생기거나 수정할때마다 다시 정의해줘야한다. lombok 라이브러리를 사용하면 간단명료하게 끝낼 수 있다.
package com.example.test.vo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter @Setter @ToString
public class TestVo {
private String UserId;
private String UserPw;
private String UserName;
}
@Getter @Setter @ToString 어노테이션만 붙이면 get, set, toString 메서드가 생성된 걸 확인할 수 있다.
2. @Data
@Data 어노테이션은 위의 @Getter, @Setter, @ToString을 포함해 @EqualsAndHashCode, @RequiredArgsConstructor 까지 포함되어있는 기능이다.
3. @Slf4j
package com.example.test.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.test.service.TestService;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@RestController
public class TestController {
@Autowired
private TestService testService;
@GetMapping("/test")
public String test() {
log.debug("test >> {}", "테스트로그");
return "test " + testService.getName();
}
}
기존에 log4j 라이브러리를 추가하지 않아도 @Slf4j 어노테이션을 추가하면 로그를 남길 수 있다.
private static final Logger LOGGER = LogManager.getLogger(Test.class.getName());
기존엔 이렇게 정의를 해줬어야 했다면 지금은 lombok라이브러리에서 제공하는 어노테이션 하나만으로 로그를 남길 수 있다.
주의사항
명확한 의도가 없는 @Data, @ToString의 무분별한 사용은 StackOverFlow와 같은 순환참조문제를 일으킬 수 있으니 주의해야한다.
Ref
https://jake-seo-dev.tistory.com/70
https://jhkimmm.tistory.com/m/20
'Programming > spring' 카테고리의 다른 글
[Spring] 배치(Batch) 프로그램(일괄처리) (0) | 2023.02.23 |
---|---|
[SpringBoot] Gradle lombok 추가 방법 (0) | 2023.02.10 |
[SpringBoot] @RunWith 어노테이션 안나올때 (0) | 2023.02.10 |
[Spring] Spring Boot DevTools 기능/사용법 살펴보기 (0) | 2023.02.08 |
[Springboot] security 시큐리티 기능 임시로 해제할때 (0) | 2023.01.04 |