[Java] So lassen Sie die Federkonstruktorinjektion mit Lombok weg

Beachten Sie die Technik, die Senioren bei der Arbeit anwenden

Nachtrag: Alle wurden in diesem Blog veröffentlicht http://pppurple.hatenablog.com/entry/2016/12/29/233141

1. Was ist Lombok?

Es handelt sich um eine praktische Bibliothek, die beim Kompilieren automatisch einen Kesselplattencode (Standardcode, der aufgrund von Sprachspezifikationen nicht weggelassen werden kann) generiert. Beispielsweise kann JavaBean Getter / Setter usw. mit Anmerkungen versehen werden.

2. Versuchen Sie die Konstruktorinjektion

Angenommen, "HogeLogic" verwendet "FugaLogic" und Sie möchten es aus einem DI-Container erhalten.

2-1. Allgemeine Einspritzung des Federkonstruktors

Schreiben wir eine normale Spring-Konstruktor-Injektion.

Probe A.


@Component
public class HogeLogic {

  private final FugaLogic fugaLogic;

  @Autowired // <- 4.Kann nach 3 weggelassen werden
  public HogeLogic(FugaLogic fugaLogic) {
    this.fugaLogic = fugaLogic;
  }

  // some method
}

Wichtig ist, dass Sie seit ** spring4.3 @ Autowired weglassen können, wenn Sie einen Konstruktor ** haben.

2-2. Konstruktorinjektion in Lombok weggelassen

Schreiben wir die Konstruktorinjektion, die in Lombok weggelassen wurde. Kommentieren Sie einfach @ RequiredArgsConstructor zur Klasse: angel:

Probe B.


@RequiredArgsConstructor // <-Hier
@Component
public class HogeLogic {

  private final FugaLogic fugaLogic;

  // some method
}

Tipps: Versuchen Sie es mit Delombok

Der automatisch generierte Code sieht folgendermaßen aus:

Probe C.


@Component
public class HogeLogic {

  private final FugaLogic fugaLogic;

  public HogeLogic(FugaLogic fugaLogic) {
    this.fugaLogic = fugaLogic;
  }

  // some method
}

Die "@ Autowired" Birnenversion von "Sample A" ist vollständig.

3. Was meinst du?

@RequiredArgsConstructor Eine Anmerkung zum Generieren eines Konstruktors, der Initialisierungsparameter von Feldern verwendet, die initialisiert werden müssen (z. B. endgültige Felder), als Argumente. [Entwicklungsrichtlinie für TERASOLUNA Server Framework für Java (5.x) | 11.2. Beseitigung des Kesselplattencodes (Lombok)](http://terasolunaorg.github.io/guideline/5.3.1.RELEASE/de/Appendix/Lombok .html)

Ein Konstruktor wird durch den Effekt von "@ RequiredArgsConstructor" generiert Da es nur einen Konstruktor gibt, bedeutet dies, dass "@ Autowired" weggelassen wird. Es wurde automatisch vom Konstruktor injiziert ...

Die kombinierte Technik ist erstaunlich.

Recommended Posts

[Java] So lassen Sie die Federkonstruktorinjektion mit Lombok weg
[Java] So lassen Sie den privaten Konstruktor in Lombok weg
Wie man Lombok im Frühling benutzt
So kompilieren Sie Java mit VsCode & Ant
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
Studieren der Verwendung des Konstruktors (Java)
[Java] So testen Sie, ob es in JUnit null ist
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
Verwendung des Java-Frameworks mit AWS Lambda! ??
Verwendung der Java-API mit Lambda-Ausdrücken
[Java] Artikel zum Hinzufügen einer Validierung mit Spring Boot 2.3.1.
Aufrufen von Funktionen in großen Mengen mit Java Reflection
So stellen Sie Spring Boot Dependency Injection (DI) ein
So stellen Sie Java mit Serverless Framework für AWS Lambda bereit
[Java] Verschlüsselung mit AES-Verschlüsselung mit Standardbibliothek
So erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Booten nach Umgebung mit Spring Boot of Maven
[Java] So unterbrechen Sie eine Zeile mit StringBuilder
Java-Konfiguration mit Spring MVC
So senken Sie die Java-Version
[Java] Verwendung von Map
So deinstallieren Sie Java 8 (Mac)
Java zum Spielen mit Function
Java - So erstellen Sie JTable
Verwendung von Java Optional
So minimieren Sie Java-Images
Wie schreibe ich einen Java-Kommentar
Verwendung von @Builder (Lombok)
Verwendung der Java-Klasse
[Java] Verwendung von removeAll ()
[Java] So zeigen Sie Wingdings an
Wie man mit html.erb nummeriert (nummeriert)
Verwendung von Java Map
So aktualisieren Sie mit activerecord-import
So legen Sie Java-Konstanten fest
Stellen Sie mit Java eine Verbindung zur Datenbank her
Stellen Sie mit Java eine Verbindung zu MySQL 8 her
Verwenden von Mapper mit Java (Spring)
[Java] Wie Spring DI funktioniert
Verwendung von Java-Variablen
So konvertieren Sie Java Base
[Java] So implementieren Sie Multithreading
Wie man Lombok jetzt benutzt
So initialisieren Sie ein Java-Array
So kehren Sie die Kompilierung der Apk-Datei in Java-Quellcode mit MAC um
Verwendung des mit Tensorflow 2.0 trainierten Modells mit Kotlin / Java
So behandeln Sie Ausnahmen mit Java 8 Stream oder Optional kühl
Aufrufen und Verwenden der API in Java (Spring Boot)
Untersucht, wie Dienste mit Watson SDK für Java aufgerufen werden
So lernen Sie Java Silver SE 8
Verwendung von HttpClient (Get) von Java
NoSuchMethodException mit lombok ohne Standardkonstruktor
Ausführen des Postgresql-Kopierbefehls mit Spalteninformationen in Java
So führen Sie einen Komponententest für Spring AOP durch
Java mit Ramen lernen [Teil 1]