Heim  >  Artikel  >  Java  >  Federrahmenlernen (4) automatische Montage

Federrahmenlernen (4) automatische Montage

黄舟
黄舟Original
2016-12-29 13:15:301271Durchsuche

Set-Injection und Konstruktor-Injection sind bei der Konfiguration manchmal problematisch. Um die Entwicklungseffizienz zu verbessern, bietet das Framework daher automatische Montagefunktionen und vereinfacht die Konfiguration. Das Spring-Framework unterstützt standardmäßig keine automatische Assembly. Wenn Sie die automatische Assembly verwenden möchten, müssen Sie das Autowire-Attribut des 60e23eb984d18edbb092da6b8f295aba-Tags in der Spring-Konfigurationsdatei ändern.
Das automatische Assembly-Attribut verfügt über 6 optionale Werte. jedes repräsentiert unterschiedliche Bedeutungen.

1, byName
Beim Abrufen des Zielobjekts aus der Spring-Umgebung suchen die Attribute im Zielobjekt basierend auf dem id-Attributwert des 60e23eb984d18edbb092da6b8f295aba-Tags Name. Wenn es dasselbe gibt, holen Sie sich dieses Objekt und implementieren Sie die Zuordnung.
Die gesamte Spring-Umgebung: Bedeutet die Suche in allen Spring-Konfigurationsdateien, dann kann die ID nicht wiederholt werden.

2, byType
Beim Abrufen des Zielobjekts aus der Spring-Umgebung suchen die Attribute im Zielobjekt in der gesamten Spring-Umgebung nach dem Klassenattributwert des 60e23eb984d18edbb092da6b8f295aba Typ. Wenn es dasselbe gibt, holen Sie sich dieses Objekt und implementieren Sie die Zuordnung.

Nachteil: Wenn mehrere Bean-Objekte desselben Typs vorhanden sind, tritt ein Fehler auf.
Wenn es sich bei dem Attribut um einen einzelnen Datentyp handelt, tritt ein Fehler auf, wenn mehrere verwandte Objekte gefunden werden.
Wenn das Attribut vom Typ Array oder Sammlung (generisch) ist, tritt keine Ausnahme auf, wenn mehrere verwandte Objekte gefunden werden.

3. Konstruktor
verwendet die Konstruktormethode, um die Objektinjektion abzuschließen. Tatsächlich führt er auch eine Objektsuche basierend auf dem Parametertyp der Konstruktormethode durch, was der Verwendung von byType entspricht.

4, automatische Erkennung
Automatische Auswahl: Wenn das Objekt keine parameterlose Konstruktionsmethode hat, wird automatisch die automatische Montagemethode des Konstrukteurs für die Konstruktionsinjektion ausgewählt. Wenn das Objekt einen Konstruktor ohne Parameter enthält, wird die automatische Assemblierungsmethode byType automatisch für die Setter-Injektion ausgewählt.
5, nein
unterstützt die automatische Assemblierungsfunktion nicht

6, Standard
bedeutet, dass standardmäßig der Wert der automatischen Assemblierung des Tags der oberen Ebene verwendet wird. Wenn mehrere Konfigurationsdateien vorhanden sind, ist die automatische Assemblierungsmethode jeder Konfigurationsdatei unabhängig.

Wenn mehrere Konfigurationsdateien vorhanden sind, können Sie die Konfigurationsdatei wie folgt laden:
1) Sie können die Gesamtkonfigurationsdatei so angeben, dass sie die Unterkonfigurationsdateien enthält, und dann nur die Gesamtkonfigurationsdatei laden . Verwenden Sie das Import-Tag in der Gesamtkonfigurationsdatei applicationContext.xml, um die Konfigurationsdatei in das Unterdateipaket ec4b2f85bd672b7d99fadc2a2106d72c zu laden
Code:



ApplicationContextac= newClassPathXmlApplicationContext("applicationContext.xml");

2) Verwenden Sie Sternchen, um mehrere Dateien zum Laden zuzuordnen, und die Dateinamen müssen den Regeln entsprechen. (Empfohlen)

3) Sie können Arrays als Parameter verwenden, um mehrere Konfigurationsdateien gleichzeitig zu laden
//配置文件的名称
applicationContext.xml
applicationContext-action.xml
applicationContext-service.xml
applicationContext-dao.xml
 
ApplicationContextac =newClassPathXmlApplicationContext("applicationContext*.xml");

String[]files={"applicationContext.xml","applicationContext-test.xml"};               
ApplicationContextac = newClassPathXmlApplicationContext(files);

Hinweis: Wenn die automatische Montagefunktion und die manuelle Montage gleichzeitig verwendet werden, funktioniert die automatische Montage nicht.

Das Obige ist der Inhalt der automatischen Assemblierung des Spring Framework Learning (4). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn