Lombok क्या है और इसकी आवश्यकता क्यों है?
Lombok (Project Lombok) Java भाषा के लिए एक लाइब्रेरी है जो boilerplate कोड (बार-बार लिखे जाने वाले कोड) को काफी हद तक कम कर देती है। Java डेवलपर्स को अक्सर getters, setters, constructors, toString(), equals() और hashCode() जैसे एक जैसे कोड बार-बार लिखने पड़ते हैं। Lombok कंपाइलेशन के समय एनोटेशन की मदद से यह कोड अपने आप जनरेट कर देता है।
Lombok का मुख्य उद्देश्य कोड को साफ, छोटा और मेंटेन करने में आसान बनाना है। दर्जनों लाइनों का एक जैसा कोड लिखने के बजाय, आप बस एक एनोटेशन जोड़ देते हैं, और बाकी सब अपने आप जनरेट हो जाता है। यह खासतौर पर model classes (POJO/DTO) के लिए बहुत उपयोगी है, जहां boilerplate कोड कुल कोड का 70% तक हो सकता है।
Lombok कोई runtime फ्रेमवर्क नहीं है - यह सिर्फ कंपाइलेशन के समय काम करता है। जनरेट किया गया कोड bytecode में शामिल हो जाता है, इसलिए runtime पर Lombok की कोई डिपेंडेंसी नहीं होती।
Lombok की स्थापना (Installation)
Lombok को आप अपने प्रोजेक्ट में एक सामान्य डिपेंडेंसी की तरह जोड़ते हैं। चूंकि यह Java लाइब्रेरी है, इसलिए इसे pip या npm से इंस्टॉल नहीं किया जाता। मुख्य तरीके इस प्रकार हैं:
Maven
pom.xml में यह जोड़ें:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
Gradle
build.gradle में यह जोड़ें:
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
}
IntelliJ IDEA
IntelliJ IDEA में Lombok प्लगइन इंस्टॉल करें (Settings → Plugins → Marketplace → Lombok) और एनोटेशन प्रोसेसिंग चालू करें (Settings → Build, Execution, Deployment → Compiler → Annotation Processors → Enable annotation processing)।
Eclipse
Lombok की आधिकारिक वेबसाइट से JAR फ़ाइल डाउनलोड करें और डबल-क्लिक करके चलाएं - एक इंस्टॉलर खुलेगा जो आपकी IDE को ढूंढकर ज़रूरी सेटिंग्स अपने आप कर देगा।
कोड उदाहरण के साथ त्वरित शुरुआत
आइए Lombok के उपयोग से पहले और बाद में एक सामान्य Java क्लास देखें।
Lombok के बिना (पारंपरिक तरीका):
public class User {
private String name;
private int age;
private String email;
public User() {}
public User(String name, int age, String email) {
this.name = name;
this.age = age;
this.email = email;
}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
@Override
public String toString() {
return "User{name='" + name + "', age=" + age + ", email='" + email + "'}";
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return age == user.age && Objects.equals(name, user.name) && Objects.equals(email, user.email);
}
@Override
public int hashCode() {
return Objects.hash(name, age, email);
}
}
Lombok के साथ:
import lombok.*;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private int age;
private String email;
}
सिर्फ 5 लाइनों में 50 लाइनों का काम! कोड अब संक्षिप्त, पढ़ने में आसान और मेंटेन करने में सरल हो गया है।
मुख्य Lombok एनोटेशन और तरीके
नीचे Lombok के प्रमुख एनोटेशन दिए गए हैं। हर एक एनोटेशन खास तरीकों या कार्यक्षमता को जनरेट करता है।
1. @Getter और @Setter
यह क्या करता है: