Durch die Verwendung von Annotationen kann Lombok Java-Code vereinfachen und die Entwicklungseffizienz verbessern. Es handelt sich an sich um eine hervorragende Java-Codebibliothek. Sie nutzt einen opportunistischen syntaktischen Zucker, um die Java-Codierung zu vereinfachen und bietet eine Möglichkeit, Java-Code zu optimieren.
Java-Klassen, die häufig während der Webentwicklung geschrieben werden müssen, benötigen Zeit, um entsprechende Getter/Setter, Konstruktoren, Equals und andere Methoden hinzuzufügen. Wenn viele Attribute vorhanden sind, gibt es eine große Anzahl von Getter/Setter-Methoden, die sehr langwierig sind und nicht viel technischen Inhalt haben. Sobald die Attribute geändert werden, vergisst man leicht, die entsprechenden Methoden zu ändern.
Offizielle Website: Projekt Lombok
1. Allgemeine Anmerkungen zu Lombok
Hinweis | Funktion |
---|---|
@Data | #🎜 🎜#Annotiert für die Klasse; stellt Methoden zum Abrufen und Festlegen aller Attribute der Klasse sowie die Methoden „equals“, „canEqual“, „hashCode“ und „toString“ bereit|
Auf der Eigenschaft mit Anmerkungen versehen; stellt Einstellungsmethode für die Eigenschaft bereit Methode für die Eigenschaft abrufen | |
Annotiert für die Klasse; Versehen Sie die Klasse mit einem log4j-Protokollobjekt mit einem Attribut namens log# 🎜🎜##🎜🎜 # | @NoArgsConstructor |
ist für die Klasse mit Anmerkungen versehen; stellt eine vollständig parametrisierte Konstruktormethode für die Klasse bereit | |
Stream schließen | |
Die annotierte Klasse fügt Konstruktormuster hinzu | # ?? zu try/catch, um Ausnahmen abzufangen geworfen werden. |
@Value | Die Annotation ähnelt @Data. Standardmäßig sind alle Mitgliedsvariablen als private endgültige Änderungen definiert. und die Set-Methode wird nicht generiert |
2. Grund für das Scheitern der Lombok-AnnotationNach der Einführung der Lombok-Abhängigkeit in pom.xml müssen Sie auch installieren Das Lombok-Plug-in#🎜 🎜#, muss IDEA neu gestartet werden, damit es wirksam wird. Integrationsprozess1. Lombok-Abhängigkeiten einführen: Kopieren Sie den folgenden Code und fügen Sie ihn in pom.xml ein, warten Sie, bis das Maven-Repository aktiviert ist Laden Sie die Abhängigkeiten automatisch herunter und installieren Sie sie. Wenn der automatische Paketimport nicht eingestellt ist, klicken Sie auf Manueller Import.<!--导入lombok小辣椒驱动依赖,用来生成get/set等方法依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <!--<optional>true</optional>--> <version>1.18.12</version> <scope>provided</scope><!--自动生成有参无参构造--> </dependency>2. Installieren Sie das Lombok-Plugin Klicken Suchen Sie in der IDEA-Datei-》Einstellung-》Plugins-》 nach Lombok, installieren Sie das Plug-in und starten Sie IDEA neu Getter/Setter und andere Methoden für Eigenschaften Programmcode-Beispiel a wird nicht zum Schreiben von Entitätsklassen verwendet (das Programm ist fett und hässlich) Verwenden Sie die Tastenkombinationen Kommen Sie mit der IDE, um Getter/Setter-Methoden automatisch zu generieren: package com.dvms.entity; /* *文件名: Anglerecord *创建者: CJW *创建时间:2020/6/6 14:40 *描述: 记录 */ public class Record { private String time; private String device; private String state; public Record(String time, String device, String state) { this.time = time; this.device = device; this.state = state; } public Record() { } public String getTime() { return this.time; } public String getDevice() { return this.device; } public String getState() { return this.state; } public Record setTime(String time) { this.time = time; return this; } public Record setDevice(String device) { this.device = device; return this; } public Record setState(String state) { this.state = state; return this; } public boolean equals(final Object o) { if (o == this) return true; if (!(o instanceof Record)) return false; final Record other = (Record) o; if (!other.canEqual((Object) this)) return false; final Object this$time = this.getTime(); final Object other$time = other.getTime(); if (this$time == null ? other$time != null : !this$time.equals(other$time)) return false; final Object this$device = this.getDevice(); final Object other$device = other.getDevice(); if (this$device == null ? other$device != null : !this$device.equals(other$device)) return false; final Object this$state = this.getState(); final Object other$state = other.getState(); if (this$state == null ? other$state != null : !this$state.equals(other$state)) return false; return true; } protected boolean canEqual(final Object other) { return other instanceof Record; } public int hashCode() { final int PRIME = 59; int result = 1; final Object $time = this.getTime(); result = result * PRIME + ($time == null ? 43 : $time.hashCode()); final Object $device = this.getDevice(); result = result * PRIME + ($device == null ? 43 : $device.hashCode()); final Object $state = this.getState(); result = result * PRIME + ($state == null ? 43 : $state.hashCode()); return result; } public String toString() { return "Record(time=" + this.getTime() + ", device=" + this.getDevice() + ", state=" + this.getState() + ")"; } }b Einführung in die Lombok-Generierungsmethode (das Programm ist schlank und sieht sehr komfortabel aus) Sie können es je nach Bedarf manuell hinzufügen. Anmerkungen können auch durch Rechtsklick auf -》Refactor-》Lomok-》 erstellt werden. package com.dvms.entity; /* *文件名: Anglerecord *创建者: CJW *创建时间:2020/6/6 14:40 *描述: 记录 */ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import lombok.experimental.Accessors; @Data @ToString @AllArgsConstructor @NoArgsConstructor @Accessors(chain = true) //链式调用 public class Record { private String time; private String device; private String state; }Vorteile und Nachteile (mögliche Probleme sind Lösungen)#🎜🎜 # Vorteile: Lombok kann automatisch Getter/Setter, Equals, toString und andere Methoden für Eigenschaften zur Kompilierungszeit durch Annotationen generieren, Dadurch entfällt die Mühe, diese Codes manuell neu zu erstellen, und der Code der Programmentitätsklasse (Entity/Pojo) sieht schlanker und eleganter aus.Nachteile (mögliche Probleme): Wenn es sich um eine persönliche Entwicklung handelt, können folgende Probleme auftreten: 1. Lombok unterstützt derzeit JDK1.8, aktualisieren Sie das JDK-Version Es kann später fehlschlagen, Lösung:a. Generieren Sie Getter/Setter-, Equals-, HashCode-, toString- und Konstruktor-Methoden über die IDE-eigene Tastenkombination Alt+Einfügen;
java -jar lombok.jar delombok src -d src-delomboked , um die Klassendatei zu konvertieren implementiert durch Lombok-Annotation Für Java-Quelldateien, die Lombok nicht verwenden. Die Verwendung von Lombok kann die JavaBean-Kapselung vereinfachen, beeinträchtigt jedoch die Lesbarkeit. Versuchen Sie außerdem, diese Annotation nicht zu verwenden @AllArgsConstructor Diese Annotation bietet der Außenwelt die Möglichkeit, alle Eigenschaften in der Klasse zu ändern, wenn sie initialisiert wird Objekte in Java-Klassen sollten nicht überarbeitet werden. Wenn eine Java-Klasse mehrere Eigenschaften enthält, fügt Lombok gleichzeitig mehrere Parameterkonstruktoren in die Java-Klasse ein, und die Reihenfolge der Konstruktorparameter wird vollständig von Lombok gesteuert. 3. Nachdem Lombok zum Schreiben von Javabean-Code verwendet wurde, müssen andere Codes, die auf diesem Javabean basieren, Lombok-Abhängigkeiten einführen, und der Grad der Codekopplung erhöht sich. Gleichzeitig müssen Sie auch das Lombok-Plugin in der IDE installieren.4. Wenn es sich um eine gemeinsame Entwicklung handelt, müssen Sie auf die folgenden Punkte achten: Wenn das Lombok-Plug-in in unseren Programmcode eingeführt wird, müssen auch andere Personen es herunterladen und vorstellen das Lombok-Plugin, sonst funktioniert der Java-Code möglicherweise nicht richtig. |
Das obige ist der detaillierte Inhalt vonSpringBoot integriert Lombok und zeigt, wie man häufig auftretende Probleme löst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!