Datei ApplicationContext und ServletContext
Bin ich verwirrt zwischen den beiden Datei ApplicationContext und ServletContext, wenn es um Spring-MVC-Anwendung.
Ich weiß, dass Es eben nur Eine Datei ApplicationContext pro Feder Web-Anwendung und es ist auch einfach nur Ein ServletContext pro web-Anwendung.
Zu initiieren, die einen Mehrwert für beide Datei ApplicationContext und ServletContext, in web.xml fügen wir etwas in context-param tag.
Dass ist der Punkt, das macht mich verwirrt. Was sind die Unterschiede zwischen diesen beiden (ich weiß der Datei ApplicationContext hat einige Methoden zum arbeiten mit Bohnen)? und Wenn wir Datei ApplicationContext und Wenn wir ServletContext?
- Haben Sie sich die javadoc von entweder?
- Tat ich, aber ich kann ich nicht durch bekommen, so dass ich diese Frage gestellt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Servlet-Kontext:
Es wird initialisiert, wenn eine Servlet-Anwendung bereitgestellt wird. Servlet-Kontext enthält alle Konfigurationen (init-param, Kontext-params etc) des gesamten servlet-Anwendung.
Anwendung Kontext:
Ist es eine Feder bestimmte Sache. Es ist initialisiert durch den Frühling. Es hält alle bean-Definitionen und-Leben-Zyklus, der von den Bohnen, die definiert ist, die innerhalb des spring-Konfigurationsdateien. Servlet-Kontext hat keine Ahnung über diese Dinge.
Gibt es zwei Arten von Kontexten im Frühjahr Eltern und Kind.
Frühjahr Übergeordneten Kontext (Anwendungs-Kontext /Root-Kontext )
Rolle-Zweck-of-contextloaderlistener-in-spring
Frühling-ContextLoaderListener-Und-DispatcherServlet-Konzepte
Wenn der Frühling container-start-ups, es liest alle bean-Definitionen aus der Konfigurations-Dateien und erstellt Bohnen Objekte und verwaltet den Lebenszyklus der beans-Objekte.
Diese Konfiguration ist völlig optional.
DispatcherServlet vs ContextLoaderListener
/deklarieren-spring-bean-in-parent-Rahmen-vs-Kind-Kontext
Frühlings-Kind-Kontext ( WebApplicationContext - /Kind-Kontext )
Wenn der Frühling web-Anwendung wird gestartet, es wird sich für spring-bean-Konfiguration-Datei myWebApplication-servlet.xml. Es Lesen alle die bean-Definitionen erstellt und verwaltet bean-Objekte Lebenszyklus. Wenn der Elternteil spring-Kontext verfügbar ist, wird Zusammenführen, das Kind Frühling Zusammenhang mit der übergeordneten Frühjahr Kontext. Wenn es kein Frühling übergeordneten Rahmen zur Verfügung der Anwendung nur das Kind Frühling Kontext.
Sie sind getrennte Dinge. Alle Java-web-Anwendungen auf Servlet-Technologie wird eine servlet-Kontext, ob es ein spring-Anwendung oder nicht. Im Gegensatz dazu, die Datei ApplicationContext ist eine Feder Sache; in sehr einfachen Worten, es ist ein Behälter zu halten Frühling Bohnen.
Würde es helfen, wenn Sie zitieren ein Beispiel für dieses ist, weil, soweit ich weiß, context-param verwendet wird, für ServletContext, und nicht der Datei ApplicationContext.
Update:
Können Sie eine
context-param
um die Standorte der root-Anwendung Kontext-Konfigurations-Dateien, wie unten dargestellt.Im Frühjahr, zu Lesen, eine bestimmte Initialisierung Konfigurations-Datei, die wir verwenden, die context-param mit den vordefinierten Namen genannt contextConfigLocation.
Aber im Fall von Plain-J2EE-web-Anwendung, ohne irgendwelche frameworks, die context-param Lesen kann von wo auch immer in der Anwendung, D. H. für alle servlet-filter.
Den Unterschied zwischen Datei ApplicationContext und ServletContext, erklärt sanjay
Datei ApplicationContext ist der Frühling container.
Es ist verwendet, um Draht-Konfigurationen von Spring-beans zusammen und nutzen Sie für die Anwendung.
Datei ApplicationContext verwenden, wenn Sie möchten, um die Informationen von Spring beans.
Verwenden ServletContext wenn Sie wollen get/set Attribut diejenigen, die gemeinsam auf allen Servlet.
ServletContext
unterscheidet sich von der 'einschließenden'ApplicationContext
. Die Java-doc sagt, das unten fürServletContext
Da es mehr als eine "web application" unter den gleichen
AppBase
, jede mit Ihren eigenenDocBase
,WEB-INF/web.xml
etc., es ist definitiv eine gemeinsame Umgebung/Kontext, der von allen geteilt wird "web-Anwendungen", die bezeichnet wird als dieApplicationContext
. Im Falle von JSFPortletContext
ist das Gegenstück vonServletContext
und dieApplicationContext
genanntenExternalContext
.