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
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
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
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
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.