Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die Codebeispiele von Spring für die Verwendung mehrerer XML-Konfigurationsdateien

Detaillierte Einführung in die Codebeispiele von Spring für die Verwendung mehrerer XML-Konfigurationsdateien

黄舟
黄舟Original
2017-03-08 16:53:512532Durchsuche

Spring verwendet mehrere XML-Konfigurationsdateien, Freunde in Not können darauf verweisen.

1, definieren Sie den contextConfigLocation-Parameter in web.xml. Spring verwendet diesen Parameter, um alle durch Kommas getrennten XML-Dateien zu laden. Wenn dieser Parameter nicht vorhanden ist, lädt Spring standardmäßig die Datei web-inf/applicationContext.xml .

<context-param><param-name>contextConfigLocation</param-name>
<param-value>classpath*:conf/spring/applicationContext_core*.xml,
classpath*:conf/spring/applicationContext_dict*.xml,classpath*:conf/spring/applicationContext_hibernate.xml,
classpath*:conf/spring/applicationContext_staff*.xml,classpath*:conf/spring/applicationContext_security.xml
classpath*:conf/spring/applicationContext_modules*.xmlclasspath*:conf/spring/applicationContext_cti*.xml
classpath*:conf/spring/applicationContext_apm*.xml</param-value>
</context-param>

Der contextConfigLocation-Parameter definiert die zu ladende Spring-Konfigurationsdatei. Das Prinzip wird wie folgt erklärt:

1. Verwenden Sie ServletContextListener zur Implementierung.
Spring stellt eine Implementierungsklasse von ServletContextListener, ContextLoaderListener, bereit, die als Listener verwendet werden kann. Die Datei applicationContext.xrnl wird beim Erstellen automatisch unter WEB-INF/ gefunden. Daher

wenn nur eine Konfigurationsdatei vorhanden ist und der Dateiname applicationContext.xml lautet, müssen Sie nur den folgenden Code zur Datei web.xml


hinzufügen:


Wenn mehrere Konfigurationsdateien geladen werden müssen, sollten Sie die Verwendung des <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>-Dateinamen der Konfigurationsdatei zu ermitteln. Denn wenn ContextLoaderListener geladen wird, sucht es nach einem Parameter namens contextConfigLocation.


Daher sollte der Parametername contextConfigLocation lauten, wenn context-param konfiguriert wird.

Die web.xml-Datei mit mehreren Konfigurationsdateien lautet wie folgt:


Wenn keine contextConfigLocation angegebene Konfigurationsdatei vorhanden ist, findet Spring automatisch die Anwendung
<1-- XML 文件的文件头二〉<?xml version="l.O" encoding="工80-8859-1"?>
< 1-- web.xm1 文件的DTD 等信息一〉<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems. 工口c.//DTD Web Application 2.3//EN"&#39;&#39;http://java.sun.com/dtd/web-app_2_3.dtd&#39;&#39;>
<web-app><!一确定多个配置文件>
<context-param><1-- 参数名为contextConfigLocation…〉
<param-name>contextConfigLocation</param-name><!一多个配置文件之间以,隔开二〉
<param-value>/WEB-工NF/daoContext.xml./WEB-INF/applicationContext.xml</param-value>
</context-param><!-- 采用listener创建Applicat工onContext 实例-->
<listener><listener-class>org.spr工ngframework.web.context.ContextLoader
Listener</listener-class></listener></web-app>
Context.xrnl-Konfigurationsdatei. Wenn contextConfigLocation vorhanden ist, verwenden Sie die durch diesen Parameter bestimmte Konfigurationsdatei.


Eine durch diesen Parameter angegebene Zeichenfolge ist für die Zerlegung der Zeichenfolge in mehrere

-Konfigurationsdateien verantwortlich. Sie können alle als Zeichenfolgentrennzeichen verwendet werden .


Wenn weder applicationContext vorhanden ist. All dies führt dazu, dass Spring die Konfigurationsdatei nicht

laden oder die ApplicationContext-Instanz nicht normal erstellen kann.
Das Konfigurieren eines von Spring zum Laden festgelegten Servlets kann denselben Effekt erzielen.

Verwendung Load-on-Startup-Servlet ausführen.
Spring bietet eine spezielle Servllet-Klasse: ContextLoaderServlet. Wenn das Servlet gestartet wird, sucht es

automatisch nach der Datei applicationContext.xml unter WEB-IN.
Damit das ContextLoaderServlet beim Start der Anwendung gestartet werden kann, sollte dieses Servlet natürlich auf

Der Wert von Servleto Load-on-Startup von Load-on-Startup ist kleiner, weil Es ist angemessener sicherzustellen, dass zuerst der Anwendungskontext erstellt wird. Wenn nur eine Konfigurationsdatei vorhanden ist und der Dateiname applicationContext.xml lautet, fügen Sie den folgenden Code zur Datei

web.xml hinzu:


. Die Web- und NL-Dateien mit mehreren Konfigurationsdateien lauten wie folgt:

<servlet>
<servlet-name>context</servlet-name><servlet-class>org.springframework.web.context.ContextLoaderServlet</
servlet-class><load-on-startup>l</load-on-startup>
</servlet>

2, verwenden Sie das entsprechende Zeichen

<!-- XML 文件的文件头--><?xml version="1.0" encoding="工SO-8859-1"?>
<! -- web.xml 文件的DTD 等信息→<!DOCTYPE web-appPUBLIC "-//Sun Microsystems , 工口c.//DTD Web Application 2.3//EN"
&#39;&#39;http://java.sun.com/dtd/web-app_2_3.dtd&#39;&#39;><web-app>
<&#39;一确定多个配置文件一><context-param>
<!-- 参数名为contextConfigLocation--><param-name>contextConfigLocation</param-name><!-- 多个配置文件之间以,隔开一〉
<param-value>/WEB-工NF/daoContext.xml, !WEB-工NF/applicationContext.xml</param-value>
</context-param><!一采用load-on-startup Servlet 创建Applicat工onContext 实例一〉
<servlet><servlet-narne>context</servlet-narne>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<!一下面值小一点比较合适,会优先加载一〉<load-on-startup>l</load-on-startup></servlet>
</web-app>
. Wenn beispielsweise Hibernate verwendet wird, ist das Hibernate-bezogene Konfiguration Platzieren Sie es in der Datei applicationContext-hibernate.xml, und einige globale verwandte Informationen werden in applicationContext.xml abgelegt. Auf diese Weise können sie ohne Schreiben geladen werden Durch Leerzeichen oder Kommas getrennt. 3. Wenn Sie Struts verwenden, um mehrere Federkonfigurationsdateien zu laden, fügen Sie diese

struts-config.xml >4. Wenn es sich um eine Nicht-J2ee-Anwendung handelt, wird das Programm direkt geladen
<context-param><param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value></context-param>

Erklären Sie abschließend den Unterschied zwischen dem folgenden Klassenpfad*: und dem Klassenpfad:


classpath*: scheint Dateien aus mehreren JAR-Dateien zu extrahieren. Dieselbe Datei in .classpath laden: Nur die erste gefundene Datei kann geladen werden


Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Codebeispiele von Spring für die Verwendung mehrerer XML-Konfigurationsdateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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