Spring uses multiple xml configuration files, friends in need can refer to them.
1, Define the contextConfigLocation parameter in web.xml. Spring will use this parameter to load all comma-delimited xml. Without this parameter, spring loads the web-inf/applicationContext.xml file by default.
<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>
The contextConfigLocation parameter defines the Spring configuration file to be loaded. The principle is explained as follows:
1. Use ServletContextListener to implement.
Spring provides an implementation class of ServletContextListener, ContextLoaderListener, which can be used
as a listener. It will automatically find the applicationContext.xrnl file under WEB-INF/ when it is created. Therefore, if there is only one configuration file and the file name is applicationContext.xml, you only need to add the following code to the web.xml
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
The web.xml file with multiple configuration files is as follows:
<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"''http://java.sun.com/dtd/web-app_2_3.dtd''> <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 configuration file. If there is contextConfigLocation, use the configuration file determined by this parameter.
configuration files. Commas ",", spaces "" and semicolons ";" can all be used as characters string delimiter.
Load the configuration file or fail to create the ApplicationContext instance normally
Use load-on-startup Servlet accomplish.
automatically search for the applicationContext.xml file under WEB-IN.
Load-on-startup The value of Servleto load-on-startup is smaller, which is more appropriate, because it is necessary to ensure that Application
web.xml file:
<servlet> <servlet-name>context</servlet-name><servlet-class>org.springframework.web.context.ContextLoaderServlet</ servlet-class><load-on-startup>l</load-on-startup> </servlet>
<!-- XML 文件的文件头--><?xml version="1.0" encoding="工SO-8859-1"?> <! -- web.xml 文件的DTD 等信息→<!DOCTYPE web-appPUBLIC "-//Sun Microsystems , 工口c.//DTD Web Application 2.3//EN" ''http://java.sun.com/dtd/web-app_2_3.dtd''><web-app> <'一确定多个配置文件一><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>
<context-param><param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext*.xml</param-value></context-param>
. For example, if Hibernate is used, put the hibernate related configuration in applicationContext- hibernate.xml is a file, and some global related information is placed in applicationContext.xml. Other configurations are similar. In this way, it can be loaded without writing separated by spaces or commas!
3, if you use struts to load multiple spring configuration files. The following configuration is actually the contextConfigLocation variable.struts-config.xml add this
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml,/WEB-INF/action-servlet.xml,,,,,,,"/>
ApplicationContext act = new ClassPathXmlApplicationContext(new String[]{"bean1.xml","bean2.xml"});BeanDefinitionRegistry reg = new DefaultListableBeanFactory(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg); reader.loadBeanDefinitions(new ClassPathResource("bean1.xml")); reader.loadBeanDefinitions(new ClassPathResource("bean2.xml")); BeanFactory bf = (BeanFactory)reg;
classpath*: appears to load the same file from multiple jar files.classpath: Only the first file found can be loaded.
The above is the detailed content of Detailed introduction to Spring's code examples for using multiple xml configuration files. For more information, please follow other related articles on the PHP Chinese website!