[JAVA] So stellen Sie Spring Boot Dependency Injection (DI) ein

Wir haben zusammengefasst, wie die Abhängigkeitsinjektion für das Spring Framework eingerichtet wird.

Angeben des Scan-Ziels der Komponente

Standardmäßig werden Pakete in derselben Hierarchie wie Pakete in der Klasse mit "@ ComponentScan" gescannt. Wenn Sie andere Klassen scannen möchten, geben Sie den Paketnamen in "scanBasePackage" an.

// @Sie kann auch für zusammengesetzte Anmerkungen wie SpringBootApplication angegeben werden.
@ComponentScan(scanBasePackages={"com.example"})

Einstellung der Abhängigkeitsinjektion (DI)

Bei Verwendung der Frühlingsanmerkung

Definieren Sie das abhängige Objekt als Mitglied von private`` final und definieren Sie den Konstruktor, der das abhängige Objekt empfängt, als Argument im Konstruktor. Bei Verwendung von Lombok kann dies wie folgt beschrieben werden.

Komponentendefinition
@Component
class ComponentA { ...
DI-Einstellungen
@RequiredArgsConstructor
class ClassA {
	// @Autowired kann weggelassen werden.
	private final ComponentA componentA;
	...

Zuvor war es Mainstream, "@ Autowired" für Nicht-Final-Mitglieder oder deren Setter anzugeben.

class ClassA {
	@Autowired
    private ComponentA componentA;
	...
class ClassA {
	private ComponentA componentA;
	@Autowired
	public void setComponentA(ComponentA componenA) {
		...

Derzeit wird dies empfohlen, da die Verwendung des Konstruktors die folgenden Vorteile bietet.

Bei Verwendung der JSR-330-Annotation

Da es sich um einen Java-Standard handelt, ist es einfach, zu einem anderen DI-Container zu wechseln.

Komponentendefinition
@Named //Oder@ManagedBean
class ComponentA { ... }
DI-Einstellungen

Geben Sie im Konstruktor (oder Setter) "@ Inject" an. (Setter ist auch akzeptabel.)

@RequiredArgsConstructor(onConstructor=@__(@Inject))
class ClassA {
	private final ComponentA componentA;
	...

Alternativ können Sie "@ Inject" als Mitglied angeben.

class ClassA {
	@Inject
	private ComponentA componentA;
    ...

Referenz

Recommended Posts

So stellen Sie Spring Boot Dependency Injection (DI) ein
So stellen Sie Spring Boot + PostgreSQL ein
Spring Boot - So stellen Sie das Sitzungszeitlimit ein
Einführung in Spring Boot ~ ~ DI ~
So schreiben Sie einen Komponententest für Spring Boot 2
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
Verwendung von ModelMapper (Spring Boot)
[Java] [Spring] Spring Boot Das mysteriöse Hamarineta der Abhängigkeitsinjektion
So erstellen Sie mit SPRING INITIALIZR einen Hinadan für ein Spring Boot-Projekt
Benötigt für iOS 14? So legen Sie NSUserTrackingUsageDescription fest
So teilen Sie eine Spring Boot-Nachrichtendatei
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
So verkleinern Sie das Spring Boot Docker-Image
Verwendung von Spring Boot-Sitzungsattributen (@SessionAttributes)
So fügen Sie in Spring Boot einen Klassenpfad hinzu
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
So binden Sie mit einer Eigenschaftendatei in Spring Boot
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
Erster Frühlingsstiefel (DI)
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
Pläne zur Unterstützung von JDK 11 für Eclipse und Spring Boot
Einstellungen für die Verbindung zu MySQL mit Spring Boot + Spring JDBC
[Java] So lassen Sie die Federkonstruktorinjektion mit Lombok weg
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
Booten nach Umgebung mit Spring Boot of Maven
Legen Sie den Kontextparameter in Spring Boot fest
DI: Was ist Abhängigkeitsinjektion?
So legen Sie Nginx von Docker fest
Einführung in Spring Boot ② ~ AOP ~
So legen Sie Java-Konstanten fest
Setzen Sie Cookies mit Spring Boot
[Java] Wie Spring DI funktioniert
Einführung in Spring Boot Teil 1
Spring Boot zum Lernen von Anmerkungen
Erforderliche Schritte zum Ausgeben von asynchronen Spring Boot-Ereignissen
Ändern Sie das Injektionsziel für jede Umgebung mit Spring Boot 2
So ändern Sie den Einstellungswert von application.properties beim Booten im Frühjahrsstart
Aufrufen und Verwenden der API in Java (Spring Boot)
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional
Wie man Lombok im Frühling benutzt
So führen Sie einen Komponententest für Spring AOP durch
Spring Boot zum ersten Mal
So legen Sie die Validierung für time_field fest
So installieren Sie JMeter für Mac
Hinweise zur Verwendung von Spring Data JDBC
[Spring Boot] Was tun, wenn eine HttpMediaTypeNotAcceptableException auf einem Endpunkt auftritt, für den produziert wird?
[So installieren Sie Spring Data Jpa]
So erstellen Sie mit Spring Boot einen eigenen Controller, der / error entspricht
So legen Sie ein Profil mit annotationsbasierter Konfiguration im Spring-Framework fest und verwenden es
Häufige Anmerkungen für Spring Boot-Tests
Verwenden Sie DBUnit für den Spring Boot-Test
So stellen Sie sicher, dass CsrfRequestDataValueProcessor und der ursprüngliche RequestDataValueProcessor beim Spring Boot nebeneinander existieren
Rüsten Sie den Federstiefel von der 1.5-Serie auf die 2.0-Serie auf
So setzen Sie Lombok in Eclipse
Anzeigen der in Spring Boot eingegebenen Zeichen im Browser und Referenzlinks [Einführung in Spring Boot / Für Anfänger]
So wenden Sie Thymeleaf-Änderungen sofort mit #Spring Boot + maven auf den Browser an
Spring.messages.fallback-to-system-locale: false ist erforderlich, um message.properties für die i18n-Unterstützung von Spring boot als Standard festzulegen