lombok μ€μΉνκΈ°
lombok μ΄λ?
: μμ±μ, getter/setter λ©μλ, toString() λ©μλ λ±μ μλμΌλ‘ λ§λ€μ΄μ£Όλ λΌμ΄λΈλ¬λ¦¬
lombokμ μλ° μΈμ΄μ λ°λ³΅μ μΈ μ½λλ₯Ό μ€μ΄κ³ κ°λ° μμ°μ±μ ν₯μμν€κΈ° μν λΌμ΄λΈλ¬λ¦¬μ
λλ€. μ£Όμ κΈ°λ₯μΌλ‘λ μλ μμ±μ, getter/setter λ©μλ μλ μμ±, λΆνμν μ½λ μ κ±° λ±μ΄ μμ΅λλ€. lombokμ μ¬μ©νλ©΄ μ½λλ₯Ό κ°κ²°νκ² μ μ§ν μ μκ³ , κ°λ° μκ°μ λ¨μΆμν¬ μ μμ΅λλ€.
lombok μ€μΉ λ° μ°λ
2.
lombok μ€ν
-- (CMD)
cd ~/lib
java -jar lombok.jar
Shell
볡μ¬
3.
IDE κ²½λ‘ μ§μ
4.
lombok λΌμ΄λΈλ¬λ¦¬ νλ‘μ νΈμ μΆκ°
a.
μλ° νλ‘μ νΈ - build path > lib > add external jar
b.
μ€νλ§ νλ‘μ νΈ (maven, gradle) - μμ‘΄μ± μΆκ°
μμ‘΄μ± μΆκ°
Maven Repository
Maven Repositoryμ Maven νλ‘μ νΈμ μ’
μμ±μ κ΄λ¦¬νλ λ° μ¬μ©λλ μ¨λΌμΈ 리ν¬μ§ν 리μ
λλ€. Maven Repositoryμμλ λ€μν λΌμ΄λΈλ¬λ¦¬μ μ’
μμ±μ μ 보λ₯Ό κ²μνκ³ , νμν μ’
μμ±μ λ²μ λ° λ€μ΄λ‘λ λ§ν¬λ₯Ό μ 곡ν©λλ€.
Maven Repositoryλ Maven νλ‘μ νΈμ κ°λ°μλ€μ΄ νμν λΌμ΄λΈλ¬λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ κ²μνκ³ κ΄λ¦¬ν μ μλλ‘ λμμ€λλ€.
β’
lombok 1.18 μμ‘΄μ± λ°λ‘κ°κΈ°
maven νλ‘μ νΈμ κ²½μ°
β’
pom.xml
β <dependencies> νμ νκ·Έλ‘ μΆκ°
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
XML
볡μ¬
gradle νλ‘μ νΈμ κ²½μ°
β’
build.gradle
β dependencies { } λΈλ‘ μμ μΆκ°
compileOnly 'org.projectlombok:lombok:1.18.30'
Shell
볡μ¬
λΉλλꡬ?
λΉλλꡬλ μννΈμ¨μ΄ κ°λ°κ³Όμ μμ μμ€ μ½λλ₯Ό μ»΄νμΌνκ³ , ν
μ€νΈνκ³ , ν¨ν€μ§νλ λ±μ μμ
μ μλννλ λꡬμ
λλ€. μ£Όμν λΉλλꡬλ‘λ Mavenκ³Ό Gradleμ΄ μμ΅λλ€. μ΄ λꡬλ€μ νλ‘μ νΈμ μ’
μμ± κ΄λ¦¬, λΉλ νλ‘μΈμ€ μ€μ , ν
μ€νΈ μ€ν λ±μ νΈλ¦¬νκ² μ²λ¦¬ν μ μλλ‘ λμμ€λλ€.
pom.xml
: maven λΉλλꡬμ νλ‘μ νΈ λΉλ μ€μ νμΌ
build.gradle
: grdle λΉλλꡬμ νλ‘μ νΈ λΉλ μ€μ νμΌ
λΉλλꡬλ₯Ό μ΄μ©ν νλ‘μ νΈμμλ λΉλ μ€μ νμΌμ νλ‘μ νΈμ ꡬ쑰, μμ‘΄μ±, λΉλ μ€μ λ±μ μ μν©λλ€.
Restart νμ§λ§κ³ , Exit μμ μ’
λ£νκ³ λ€μ μ€νν΄λ³΄μΈμ.
μ½λ μμ±
Test.java
import lombok.Data;
@Data // getter, setter, μμ±μ λ±μ μλ μμ±νλ μ΄λ
Έν
μ΄μ
public class Test {
private String id;
private String name;
private int age;
}
Java
볡μ¬
lombok μ΄λ Έν μ΄μ
μ΄λ
Έν
μ΄μ
| μ€λͺ
|
@Getter | Getter λ©μλλ₯Ό μλμΌλ‘ μμ±ν©λλ€. |
@Setter | Setter λ©μλλ₯Ό μλμΌλ‘ μμ±ν©λλ€. |
@ToString | toString λ©μλλ₯Ό μμ±ν©λλ€. |
@EqualsAndHashCode | equals λ° hashCode λ©μλλ₯Ό μμ±ν©λλ€. |
@NoArgsConstructor | 맀κ°λ³μ μλ κΈ°λ³Έ μμ±μλ₯Ό μμ±ν©λλ€. |
@AllArgsConstructor | λͺ¨λ νλλ₯Ό 맀κ°λ³μλ‘ λ°λ μμ±μλ₯Ό μμ±ν©λλ€. |
@Data | @Getter, @Setter, @ToString, @EqualsAndHashCode, @NoArgsConstructor, @AllArgsConstructorμ λͺ¨λ ν¬ν¨ν μ’
ν© μ΄λ
Έν
μ΄μ
μ
λλ€. |
@Builder | λΉλ ν¨ν΄μ μ§μνλ λΉλ λ©μλλ₯Ό μμ±ν©λλ€. |
@Slf4j | SLF4J λ‘κΉ
μ μν Logger νλλ₯Ό μμ±ν©λλ€. |
@Value | λΆλ³(immutable) ν΄λμ€λ₯Ό μμ±ν©λλ€. Getterλ§ μμ±λκ³ Setterκ° μμ±λμ§ μμ΅λλ€. |
@Cleanup | μμ ν΄μ λ₯Ό μλμΌλ‘ μ²λ¦¬νλ μ΄λ
Έν
μ΄μ
μΌλ‘, try-with-resources ν¨ν΄μ ꡬνν©λλ€. |