Wie erstellt Spring einen Anwendungskontext oder eine Containerhierarchie?

8

Laut Der IoC-Container , Frühling Sie können eine Kontexthierarchie oder Hierarchie von Containern verwalten und dann <ref parent="beanId"/> verwenden, um auf eine Bean in einem übergeordneten Kontext zu verweisen. Welchen Mechanismus verwendet Spring, um diese Containerhierarchie zu erstellen? Kann man den Befehl <import resource="application-context.xml"/> verwenden, um diese Hierarchie zu erstellen? Bitte geben Sie ein Beispiel für einen Anwendungskontext an, der eine Hierarchie bildet.

    
Derek Mahar 14.03.2011, 17:52
quelle

1 Antwort

13

Die Anwendungskontexthierarchie wird automatisch erstellt. Beispielsweise erstellt jede Spring MVC-Anwendung einen separaten Kontext für jedes DispatcherServlet. Dieser Kontext ist ein Kind eines gemeinsamen übergeordneten Kontexts. Auf diese Weise kann jeder untergeordnete Kontext auf Beans aus dem übergeordneten Kontext zugreifen, aber nicht umgekehrt. Auch Geschwisterkontexte sind getrennt und füreinander unsichtbar.

Sie können die Kontexthierarchie manuell erstellen, um eine feinere Granularität in Ihrem Projekt zu erreichen. Dies kann z.B. mit verschiedenen Konstruktoren von ClassPathXmlApplicationContext .

<import> construct führt die Beans aus der importierten Datei zusammen, es ist also eine Möglichkeit, Beant-Definitionen in mehrere Dateien zu unterteilen, aber alle enden in einem Kontext. Übrigens ist es schade, dass es kein XML-Tag gibt, um die untergeordnete Kontextdatei (?) Zu definieren.

    
Tomasz Nurkiewicz 14.03.2011, 18:19
quelle