lombok λΌμ΄λΈλ¬λ¦¬
Java νλ‘κ·Έλλ° μΈμ΄λ₯Ό μν λΌμ΄λΈλ¬λ¦¬λ‘, λ°λ³΅μ μΌλ‘ μ¬μ©νλ μ½λλ₯Ό μλμΌλ‘ μμ±ν΄μ£Όλ κΈ°λ₯μ μ 곡νμ¬ κ°λ° μμ°μ±μ ν₯μμμΌμ€λ€.
lombok λ€μ΄λ‘λ
lombok λΌμ΄λΈλ¬λ¦¬ μΆκ°νκΈ°
νλ‘μ νΈ > WEB-INF > lib μ lombok.jar μΆκ°
lombok μ μ μ°λμ?
μλ° νλ‘κ·Έλλ°μμ μμ±μ λ° getter & setter λ©μλ λ±μ ν΄λμ€(μλ°λΉμ¦)λ₯Ό μ μν λ, λ§€λ² λ°λ³΅μ μΌλ‘ μμ±νκ² λ©λλ€. lombok μ μ¬μ©νμ¬ @Data λΌλ μ΄λ
Έν
μ΄μ
μ λΆμ΄λ©΄ μλμΌλ‘ μμ±μμ λ©μλλ₯Ό μμ±ν΄μ€λλ€.
ν΄λμ€ λ΄μ μλ‘μ΄ λ³μλ₯Ό μΆκ°νκ±°λ λ³μλͺ
μ μμ νλ©΄, getter, setter λ©μλλͺ
λ λμΌνκ² μμ ν΄μΌνλλ°, μ΄ λ lombok μ μ¬μ©νλ©΄, λ³λλ‘ μμ νμ§ μμλ μλμ μ μ©λλ μ΄μ μ΄μ΄ μμ΅λλ€.
μ£Όμ κΈ°λ₯
β’
μμ±μ λ° λ©μλ(getter, setter, toString) μλ μμ±
β’
λ‘κΉ
νλ μμ±
β’
λΉν° ν¨ν΄ κ°μ²΄ μμ±
β’
λΆλ³ ν΄λμ€ μμ±
μ£Όμ μ΄λ Έν μ΄μ
둬볡 λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄, μ΄λ
Έν
μ΄μ
μ μ§μ νμ¬ λ°λ³΅μ μ΄ μ½λλ₯Ό μλμΌλ‘ μμ±ν΄μ€λλ€.
μ΄λ
Έν
μ΄μ
| μ€λͺ
|
@Getter | νλμ λν getter λ©μλλ₯Ό μμ±ν©λλ€. |
@Setter | νλμ λν setter λ©μλλ₯Ό μμ±ν©λλ€. |
@ToString | toString() λ©μλλ₯Ό μμ±νμ¬ κ°μ²΄μ λ΄μ©μ λ¬Έμμ΄λ‘ μΆλ ₯ν©λλ€. |
@EqualsAndHashCode | equals() λ° hashCode() λ©μλλ₯Ό μμ±ν©λλ€. |
@NoArgsConstructor | 맀κ°λ³μκ° μλ κΈ°λ³Έ μμ±μλ₯Ό μμ±ν©λλ€. |
@RequiredArgsConstructor | final νλ λλ @NonNull μ λ
Έν
μ΄μ
μ΄ μ§μ λ νλλ₯Ό μΈμλ‘ λ°λ μμ±μλ₯Ό μμ±ν©λλ€. |
@AllArgsConstructor | λͺ¨λ νλλ₯Ό μΈμλ‘ λ°λ μμ±μλ₯Ό μμ±ν©λλ€. |
@Builder | λΉλ ν¨ν΄μ μλμΌλ‘ μμ±νμ¬ κ°μ²΄λ₯Ό μμ±ν©λλ€. |
@Data | @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructorλ₯Ό νλ²μ μ§μ ν©λλ€. |
@Value | λΆλ³ ν΄λμ€λ₯Ό μμ±ν©λλ€. |
@Slf4j | SLF4Jλ₯Ό μ¬μ©νμ¬ κ°λ¨ν λ‘κΉ
μ μν log νλλ₯Ό μμ±ν©λλ€. |
μμμ½λ
β’
@NoArgsConstructor
β’
@AllArgsConstructor
β’
@Getter & @Setter
β’
@ToString
β’
@Data
β’
@Slf4j
@NoArgsConstructor
맀κ°λ³μκ° μλ κΈ°λ³Έ μμ±μλ₯Ό μλμΌλ‘ μμ±ν©λλ€
import java.util.Date;
import lombok.NoArgsConstructor;
@NoArgsConstructor
public class User {
private String id;
private String username;
private String password;
private Date regDate;
private Date updDate;
}
Java
볡μ¬
μ μ© κ²°κ³Ό
@AllArgsConstructor
λͺ¨λ νλλ₯Ό μΈμλ‘ λ°λ μμ±μλ₯Ό μλμΌλ‘ μμ±ν©λλ€.
import java.util.Date;
import lombok.AllArgsConstructor;
@AllArgsConstructor
public class User {
private String id;
private String username;
private String password;
private Date regDate;
private Date updDate;
}
Java
볡μ¬
μ μ© κ²°κ³Ό
@Getter & @Setter
νλμ λν getter λ° setter λ©μλλ₯Ό μλμΌλ‘ μμ±ν©λλ€.
import java.util.Date;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class User {
private String id;
private String username;
private String password;
private Date regDate;
private Date updDate;
}
Java
볡μ¬
μ μ© κ²°κ³Ό
@ToString
toString() λ©μλλ₯Ό μλμΌλ‘ μμ±νμ¬ κ°μ²΄μ λ΄μ©μ λ¬Έμμ΄λ‘ μΆλ ₯ν©λλ€.
import java.util.Date;
import lombok.ToString;
@ToString
public class User {
private String id;
private String username;
private String password;
private Date regDate;
private Date updDate;
}
Java
볡μ¬
μ μ© κ²°κ³Ό
@Data
@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor λ₯Ό νλ²μ μ§μ ν©λλ€.
import java.util.Date;
import lombok.Data;
@Data
public class User {
private String id;
private String username;
private String password;
private Date regDate;
private Date updDate;
}
Java
볡μ¬
μ μ© κ²°κ³Ό
@Slf4j
κ°λ¨ν λ‘κΉ
μ μν log νλλ₯Ό μμ±ν©λλ€.
@Slf4j
public class Main {
public static void main(String[] args) {
String msg = "λ©μμ§ μ
λλ€.";
log.info("λ‘κ·Έ λ©μμ§: {}", msg);
}
}
Java
볡μ¬
μ μ© κ²°κ³Ό
λ‘κ·Έ λ©μμ§: λ©μμ§ μ
λλ€.
Java
볡μ¬