Lombok(롬복)
자바를 이용해서 개발 할 때 각 계층간 데이터를 교환하기 위해 VO/DTO/Domain 객체를 생성하고 getter/setter/toString을 정의합니다.
객체 데이터가 추가/변경될 때 마다 매번 getter/setter도 추가/변경하게 되는 불편함이 발생됩니다.
lombok
은 어노테이션으로 설정으로 getter/setter/toString을 자동으로 만들어 주는 기능이라고 할 수 있습니다
시작하기
의존성 모듈 설정
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok'
VO
// src/main/java/com/jjamong/lombok/vo/User.java
package com.jjamong.lombok.vo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter @Setter
@ToString
public class User {
private String id;
private String name;
private String pass;
}
Controller
// src/main/java/com/jjamong/lombok/controller/IndexController.java
package com.jjamong.lombok.controller;
import java.util.HashMap;
import com.jjamong.lombok.vo.User;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@RequestMapping("/")
public ResponseEntity index() {
HashMap<String, Object> data = new HashMap<String, Object>();
User user = new User();
user.setId("testId");
data.put("user", user.getId());
return new ResponseEntity(data, HttpStatus.OK);
}
}
결과
{"user":"testId"}
eclipse(이클립스) 설정
Lombok 설치
https://projectlombok.org/download
java.lang 오류 발생
eclipse.ini 파일을 열어서 아래 라인을 주석처리 합니다.
#plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_17.0.3.v20220515-1416/jre/bin