집 >백엔드 개발 >XML/RSS 튜토리얼 >여러 XML 구성 파일을 사용하기 위한 Spring의 코드 예제에 대한 자세한 소개
Spring은 여러 개의 xml 구성 파일을 사용하므로 도움이 필요한 친구들이 참조할 수 있습니다.
1, web.xml에 contextConfigLocation 매개변수를 정의합니다. Spring은 이 매개변수를 사용하여 쉼표로 구분된 모든 xml을 로드합니다. 이 매개변수가 없으면 spring은 기본적으로 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>
contextConfigLocation 매개변수는 로드할 Spring 구성 파일을 정의합니다. 원리는 다음과 같습니다.
1. ServletContextListener를 사용하여 구현합니다.
Spring은 리스너로 사용할 수 있는 ServletContextListener, ContextLoaderListener의 구현 클래스를 제공합니다. 이는 생성될 때 WEB-INF/에서 applicationContext.xrnl 파일을 자동으로 찾습니다. 따라서
파일에 다음 코드만 추가하면 됩니다.
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
따라서 context-param 구성 시 매개변수 이름은 contextConfigLocation이어야 합니다.
<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>
이 매개변수로 지정된 문자열. Spring의 ContextLoaderListener는 문자열을 여러
applicationContext. 모두 인해 Spring이
구성 파일을 로드할 수 없거나 ApplicationContext 인스턴스를 정상적으로 생성할 수 없게 됩니다.
Spring에서 로드용으로 설정된 서블릿을 구성하면
동일한 효과를 얻을 수 있습니다. 시작 시 로드 서블릿이 수행됩니다.
Spring은 특별한 Servlet 클래스인 ContextLoaderServlet을 제공합니다. 서블릿이 시작되면
WEB-IN에서 applicationContext.xml 파일을 자동으로 검색합니다.
물론 애플리케이션이 시작될 때 ContextLoaderServlet이 시작되도록 하려면 이 서블릿을
load-on-startup의 Servleto load-on-startup 값이 더 작도록 구성해야 합니다. Application
컨텍스트가 먼저 생성되었는지 확인해야 하기 때문에 이 방법이 더 적합합니다. 구성 파일이 하나만 있고 파일 이름이 applicationContext.xml인 경우
web.xml 파일에
<servlet> <servlet-name>context</servlet-name><servlet-class>org.springframework.web.context.ContextLoaderServlet</ servlet-class><load-on-startup>l</load-on-startup> </servlet>
코드를 추가합니다. 여러 구성 파일이 포함된 web 및 nl 파일은 다음과 같습니다.
<!-- 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>
2, 일치하는 문자
<context-param><param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext*.xml</param-value></context-param>를 사용합니다. 예를 들어 Hibernate를 사용하는 경우 hibernate 관련 구성을 입력합니다. applicationContext에 - hibernate.xml이 파일이고, 일부 전역 관련 정보가 applicationContext.xml에 배치되며, 다른 구성도 유사하므로 공백이나 쉼표로 구분하여 쓰지 않고 로드할 수 있다. !
3, struts를 사용하여 여러 spring 구성 파일을 로드하는 경우 다음 구성은 실제로 contextConfigLocation 변수입니다.
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml,/WEB-INF/action-servlet.xml,,,,,,,"/>4를
struts-config에 추가하세요. xml, j2ee가 아닌 경우 직접 프로그램 로드를 적용합니다.
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*:와 classpath: classpath*:에서 동일한 파일을 로드하는 것으로 나타납니다. multiple jar files.classpath: 발견된 첫 번째 파일만 로드할 수 있습니다.
위 내용은 여러 XML 구성 파일을 사용하기 위한 Spring의 코드 예제에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!