Maison  >  Article  >  développement back-end  >  Introduction détaillée aux exemples de code de Spring pour l'utilisation de plusieurs fichiers de configuration XML

Introduction détaillée aux exemples de code de Spring pour l'utilisation de plusieurs fichiers de configuration XML

黄舟
黄舟original
2017-03-08 16:53:512585parcourir

Spring utilise plusieurs fichiers de configuration XML, les amis dans le besoin peuvent s'y référer.

1, Définissez le paramètre contextConfigLocation dans web.xml. Spring utilisera ce paramètre pour charger tous les fichiers XML délimités par des virgules. S'il n'y a pas ce paramètre, Spring chargera le fichier web-inf/applicationContext.xml par défaut. .

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

Le paramètre contextConfigLocation définit le fichier de configuration Spring à charger. Le principe est expliqué comme suit :

1. Implémenté à l'aide de ServletContextListener.
Spring fournit une classe d'implémentation de ServletContextListener, ContextLoaderListener, qui peut être utilisée comme écouteur. Il trouvera automatiquement le fichier applicationContext.xrnl sous WEB-INF/ lors de sa création. Par conséquent,

s'il n'y a qu'un seul fichier de configuration et que le nom du fichier est applicationContext.xml, il vous suffit d'ajouter le code suivant au fichier web.xml


 :


S'il y a plusieurs fichiers de configuration qui doivent être chargés, pensez à utiliser l'élément <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> nom de fichier du fichier de configuration. Parce que lorsque ContextLoaderListener se chargera, il recherchera un paramètre nommé contextConfigLocation.


Par conséquent, le nom du paramètre doit être contextConfigLocation lors de la configuration de context-param.

Le fichier web.xml avec plusieurs fichiers de configuration est le suivant :


S'il n'y a pas de fichier de configuration spécifié par contextConfigLocation, Spring recherche automatiquement l'application
<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>
Fichier de configuration Context.xrnl. S'il existe contextConfigLocation, utilisez le fichier de configuration déterminé par ce paramètre.


Une chaîne spécifiée par ce paramètre. ContextLoaderListener de Spring est responsable de la décomposition de la chaîne en plusieurs

fichiers de configuration. Les virgules ",", les espaces "" et les points-virgules ";" .


S'il n'y a ni applicationContext. Tout cela empêchera Spring de

charger le fichier de configuration ou de créer l'instance ApplicationContext normalement
La configuration d'un servlet défini par Spring pour le chargement peut obtenir le même effet. accomplissement du servlet de chargement au démarrage.

Spring fournit une classe Servllet spéciale : ContextLoaderServlet. Lorsque le servlet est démarré, il


recherchera automatiquement le fichier applicationContext.xml sous WEB-IN.

Bien sûr, afin de permettre au ContextLoaderServlet de démarrer au démarrage de l'application, ce servlet doit être configuré pour


La valeur de Servleto load-on-startup de load-on-startup est plus petite, car il est plus approprié de s'assurer que Application

Context est créé en premier. S'il n'y a qu'un seul fichier de configuration et que le nom du fichier est applicationContext.xml, ajoutez le code suivant au fichier


web.xml :


. Les fichiers web et nl avec plusieurs fichiers de configuration sont les suivants :


<servlet>
<servlet-name>context</servlet-name><servlet-class>org.springframework.web.context.ContextLoaderServlet</
servlet-class><load-on-startup>l</load-on-startup>
</servlet>
2, utilisez le caractère correspondant


Par exemple, si Hibernate est utilisé, le. configuration liée à hibernate Placez-le dans le fichier applicationContext-hibernate.xml, et certaines
<!-- 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>

certaines informations globales associées sont placées dans applicationContext.xml. Les autres configurations sont similaires de cette façon, elles peuvent être chargées sans écriture. séparés par des espaces ou des virgules !

<context-param><param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value></context-param>

3. Si vous utilisez des supports pour charger plusieurs fichiers de configuration Spring, la configuration suivante est en fait la variable contextConfigLocation. 🎜>struts-config.xml >4. S'il s'agit d'une application non-j2ee, le programme est chargé directement


Enfin, expliquez la différence entre le classpath* suivant : et le classpath :

classpath* : semble extraire les fichiers de plusieurs fichiers jar. Charger le même fichier dans .classpath : seul le premier fichier trouvé peut être chargé


<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml,/WEB-INF/action-servlet.xml,,,,,,,"/>
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn