[Springboot] lombok이란? 사용방법/추가방법/@Slf4j

728x90
반응형

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://projectlombok.org/

 

Project Lombok

 

projectlombok.org

https://jake-seo-dev.tistory.com/70

 

Lombok 을 사용할 때 주의해야 하는 점들 정리

Lombok을 사용하며 주의할 것들 정리 Lombok 은 편리한 기능을 많이 제공하지만, 때때로는 그 편리함이 독이 될 수 있다. @AllArgsConstructor, @RequiredArgsConstructor 주의 얼핏 보기엔 단순히 생성자만 만들

jake-seo-dev.tistory.com

https://jhkimmm.tistory.com/m/20

 

[Spring] 롬복의 단점 (주의할 점)

롬복은 getter&setter, toString등의 bolierplate 코드들을 어노테이션 하나로 줄여주어 생산성을 향상 시켜주는 자바 진영의 대표적인 라이브러리 입니다. 그러나 롬복은 편한만큼 조심해야할 부분이 많

jhkimmm.tistory.com

 

728x90
반응형