In diesem Artikel wird der Segen von Springboots elegantes codierter Lombok vorgestellt und teilt ihn wie folgt mit Ihnen:
Überblick
Lombok vereinfacht dabei, einen Java -Code zu beseitigen, der durch einfache Syntaxanmerkungen aufgebläht ist, aber aufgebläht ist. In der Regel können Entwickler mit Unterstützung von Lombok die Vereinfachung von Pojo-Objekten (z. B. automatisch generierende Setter und Getter für uns usw.) mit Unterstützung von Lombok viele wiederholte und aufgeblähte Vorgänge vermeiden, was das Signal-Rausch-Verhältnis von Java-Code erheblich verbessert, sodass wir versuchen müssen, es anzuwenden!
Konfiguration auf der Intellij -Idee
Methode 1: Konfigurieren Sie direkt in der Ideenschnittstelle
Geben Sie zunächst die Plugins -Schnittstelle ein:
Suchen Sie dann und installieren Sie das Lombok -Plugin:
Vergessen Sie schließlich nicht, die Aktivierungsoption von Annotationsprozessoren zu aktivieren:
Nach Abschluss der obigen Installation muss die Idee neu gestartet werden, um wirksam zu werden!
Methode 2: Laden Sie die Lombok-Plug-in-Installation manuell herunter
Manchmal kann die obige Methode aus Netzwerkgründen nicht installiert werden, sodass Sie sie nur manuell herunterladen und installieren können.
Laden Sie das Lombok -Plugin herunter:
https://github.com/mplushnikov/lombok-intellij-plugin/releases
Plugins -> Plugin von der Festplatte installieren ... Wählen Sie die heruntergeladene Zip -Paket -Installation aus
Starten Sie einfach die Idee neu
Nachdem die Einstellungen in der IDE abgeschlossen sind, müssen Sie die folgende Lombok -Abhängigkeit in pom.xml hinzufügen, um sie zu verwenden
<Depopenty> <gruppe> org.projectlombok </Groupid> <artifactId> lombok </artifactid> <version> 1.16.16 </Version> </abhängig>
Hauptnoten von Lombok
@Getter and @Setter / automatisch SET- und RET -Methoden für Eigenschaften bereitstellen@ToString / Die Funktion dieser Annotation besteht darin, die Methode toString () für die Klasse automatisch zu generieren@EqualsAndHashCode / generieren automatisch HashCode und Equals -Implementierungen für Objektfelder@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor / wie der Name impliziert, generiert automatisch Konstruktoren mit entsprechenden Parametern für die Klasse@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog / automatisch die entsprechende Protokollunterstützung zur Klasse hinzufügen@Data / automatisch @toString, @EqualsandhashCode, @GerTter, @Setter und @RequiredArgSconstructor zu Nicht-Finalfeldern hinzufügen, was im Wesentlichen der umfassenden Auswirkungen mehrerer Annotationen entspricht.@NonNull / hilft uns automatisch, Nullzeiger zu vermeiden. Anmerkungen, die auf Methodenparameter wirken@Cleanup / automatisch die Methode close () für uns aufrufen. Es wirkt auf lokale Variablen. Wenn das Zielfernrohr endet, wird die Schließungsmethode automatisch aufgerufen, um Ressourcen zu veröffentlichen. Hier ist ein praktischer Codekampf mit @Data und @Log -Anmerkungen, die am häufigsten in Lombok verwendet werden!
@Data Annotation Gebrauch
Die Erklärung der offiziellen Website zu @Data Annotation lautet wie folgt:
Alles zusammen jetzt: Eine Verknüpfung für @toString, @EqualsandhashCode, @Getter auf allen Feldern, @Setter auf allen Nicht-Final-Feldern und @RequiRedArgSconstructor!
Es ist nicht schwer zu verstehen, es kann als Integration mehrerer Lombok -Anmerkungen angesehen werden, daher ist es sehr bequem zu verwenden!
Erstellen Sie zunächst eine Pojo -Entität UserLombok. Die allgemeine Schreibmethode lautet wie folgt:
public class UserLombok {private endgültige Zeichenfolge Name; privates int Alter; private doppelte Punktzahl; private String [] Tags; public userLombok (String name) {this.name = name; } public String getName () {return this.name; } void setage (int ay) {this.age = älter; } public int getage () {return this.age; } public void setScore (doppelte Punktzahl) {this.score = Score; } public double getCore () {return this.score; } public String [] getTags () {return this.tags; } public void settags (String [] Tags) {this.tags = Tags; } @Override public String toString () {return "dataExample (" + this.getName () + "," + this.getage () + "," + this.getScore () + "," + arrays.deeptoString (this.getTags ()) + "); } Protected Boolean Canequal (Object Other) {andere Instanz von DataExample zurückgeben; } @Override public boolean Equals (Objekt o) {if (o == this) return true; if (! (o InstanceOF dataExample)) return false; DataExample andere = (dataExample) o; if (! o.canequal ((Objekt)) return false; if (this.getName () == null? other.getName ()! if (this.getage ()! = other.getage ()) return false; if (double.comPare (this.getScore (), other.getScore ())! = 0) return false; if (! arrays.deepequals (this.gettags (), other.gettags ()) return false; zurückkehren; } @Override public int HashCode () {final int prime = 59; int result = 1; endgültig long temp1 = double.doubletolongbits (this.getScore ()); result = (result*prime) + (this.getName () == null? 43: this.getName (). HashCode ()); result = (result*prime) + this.getage (); result = (result*prime) + (int) (temp1 ^ (temp1 >>> 32)); result = (result*prime) + arrays.deephashCode (this.gettags ()); Rückgabeergebnis; }}Nach Lomboks Segen kann die Schreibmethode vereinfacht werden zu:
@Datapublic Class UserLombok {private endgültige Zeichenfolge Name; privates int Alter; private doppelte Punktzahl; private String [] Tags;}In der Idee werden die Anmerkungen von Lombok automatisch abgeschlossen, wie in der folgenden Abbildung gezeigt:
Schreiben wir den Pojo -Testcode
public static void main (String [] args) {userLombok userLombok = new UserLombok ("Hansonwang99"); userLombok.setage (18); String [] array = new String [] {"Apple", "Juice"}; userLombok.settags (Array); userLombok.setScore (99.0); System.out.println (userLombok); }Aus der folgenden Abbildung können wir sehen, dass diese Idee den von Lombok für uns automatisch generierten Code automatisch vervollständigen kann:
Ergebnisse Druck
Da Lombok automatisch die ToString -Methode für uns generiert, lautet das Druckergebnis des Objekts wie folgt:
UserLombok (name = hansonwang99, Alter = 18, Score = 99,0, Tags = [APPLE, JUSICE])
@Log Annotation Praxis
In meinem Artikel Spring Boot Log Framework Practice verwenden wir Log4j2 als Protokollobjekt, das wie folgt geschrieben wird:
@RastController@requestMapPing ("/testlogging") public class loggingTestController {private landes logger logger = logManager.getLogger (this.getClass ()); @GetMapping ("/hello") public String hello () {für (int i = 0; i <10_0000; i ++) {logger.info ("Info Execute Index -Methode"); logger.warn ("Warn Execute Indexmethode"); logger.Error ("Fehler ausführen index ausführen"); } return "meine erste Springboot -Anwendung"; }}Wenn Sie stattdessen Lombok verwenden, wird die Schreibmethode prägnanter. Wir müssen nur die entsprechende @log -Annotation vorstellen, um die Erzeugung des Protokollobjekts zu vervollständigen:
@RastController@requestMapPing ("/testloggingwithlombok")@log4j2Public class loggingtestControllerLombok {@getmapping ("/hello") public String hello () {für (int i = 0; i <10_0000; i ++) {log.info ("Info Execuse Index -Methode"); log.warn ("Warn Execute Indexmethode"); log.Error ("Fehler bei der Ausführung der Indexmethode"); } return "meine erste Springboot -Anwendung"; }}Wie wäre es damit, ist alles so elegant!
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.