Heim  >  Artikel  >  Java  >  Was sind die Injektionsmethoden von Java Spring?

Was sind die Injektionsmethoden von Java Spring?

WBOY
WBOYnach vorne
2023-05-03 12:04:161157Durchsuche

Legen Sie den Spring-Bereich fest

Java spring的注入方式有哪些


oder verwenden Sie Aufzählungswerte, um Einzelfall- und mehrstufige Nutzungsszenarien automatisch festzulegen

eine Schnittstelle Wie Viele Wird die Implementierung von Spring verwaltet? Spring löst eine NoUniqueBeanDefinitionException aus, ohne zu wissen, welche Implementierungsklasse injiziert werden soll. Java spring的注入方式有哪些@ComponentScan Die Auswirkungen verschiedener Konfigurationen Optimierung der Bean-Konfiguration für die Leistung von Spring-Anwendungen

In Spring können wir den JavaBean-Injektionsprozess vereinfachen, indem wir den Scanbereich von Komponenten festlegen

Wenn eine Objektinjektion in großem Maßstab erforderlich ist, verwenden Sie im Szenario die Annotation @ComponentScan zur Angabe Natürlich müssen die Klassen im angegebenen Paketpfad mit der Annotation @Component hinzugefügt werden, damit Spring sie erstellen und verwalten kann. Java spring的注入方式有哪些

Java spring的注入方式有哪些

Lazy Loading


Java spring的注入方式有哪些Spring verwendet standardmäßig das Vorladen und erstellt Beans, wenn das Spring-Projekt startet.

Lazy Loading: Beans werden nicht erstellt, wenn das Spring-Projekt startet, sondern bei Verwendung von

Java spring的注入方式有哪些

Java spring的注入方式有哪些

Drei Injektionsmethoden

Java spring的注入方式有哪些

Feldinjektion (IDEA weist darauf hin, dass dies nicht empfohlen wird)

Java spring的注入方式有哪些Nachteile der Feldinjektion:

Die Feldinjektions-Bean-Klasse ist es nicht außerhalb der Bean-Klasse sichtbarJava spring的注入方式有哪些


Problem der zirkulären Abhängigkeit

Java spring的注入方式有哪些Die Objekte, die injiziert werden müssen, können nicht als endgültig festgelegt werden, noch können diese unveränderlichen Objekte injiziert werden

Java spring的注入方式有哪些

Java spring的注入方式有哪些

Java spring的注入方式有哪些Die Bean-Klasse Das vom Feld injizierte Feld ist außerhalb der Bean-Klasse nicht sichtbar

Java spring的注入方式有哪些

Das größte Problem bei der Verwendung der Feldinjektion ist die externe Sichtbarkeit der injizierten Klasse (HealthRecorSercice). Auf HealthRecorSercice kann nur in der ClientService-Klasse zugegriffen werden außerhalb der Containerumgebung, was dazu führt, dass die Kopplung zwischen der Klasse und dem Container zu hoch ist. Verwenden Sie das Zielobjekt außerhalb des Containers.

In der externen Klasse new ruft ein ClientService eine Methode auf, die eine feldinjizierte Bean enthält, und es wird eine Nullzeigerausnahme der HealthRecorSercice-Klasse ausgelöst.

Zirkuläres Abhängigkeitsproblem
  • Wie unten gezeigt, haben A und B zyklische Abhängigkeiten, aber Beim Starten der Sring-Klasse wird keine Ausnahme ausgelöst, wenn A oder B verwendet wird. Das vom Feld injizierte Objekt wird vor der Instanziierung anderer instanziiert Klassen, die injiziert werden müssen.

    Konstruktor-Injektion (offizielle Empfehlung)
  • Konstruktor-Injektion soll über den Konstruktor der Klasse injiziert werden

    Konstruktor-Injektion kann Folgendes lösen:

  • Unsichtbar außerhalb der Klasse

Das Objekt, das injiziert werden muss, kann nicht festgelegt werden Abschließend: Diese unveränderlichen Objekte können auch nicht eingefügt werden

Sind bei der Konstruktorinjektion zirkuläre Abhängigkeiten aufgetreten? Beim Start des Spring-Projekts wird eine zirkuläre Abhängigkeitsausnahme ausgelöst

Zirkuläres AbhängigkeitsproblemJava spring的注入方式有哪些

Die Objekte, die injiziert werden müssen, können nicht als endgültig festgelegt werden, und diese unveränderlichen Objekte können nicht injiziert werden

Das obige ist der detaillierte Inhalt vonWas sind die Injektionsmethoden von Java Spring?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen