spring教程

spring 中加载xml配置文件的方式
点击:   发布日期:2007-6-14 12:39:00   进入论坛


    spring 中加载xml配置文件的方式,好像有3种, xml是最常见的spring 应用系统配置源。Spring中的几种容器都支持使用xml装配bean,包括:
    XmlBeanFactory ,
    ClassPathXmlApplicationContext ,
    FileSystemXmlApplicationContext ,
    XmlWebApplicationContext 
 
一:XmlBeanFactory 引用资源
      Resource resource = new ClassPathResource("appcontext.xml");
      BeanFactory factory = new XmlBeanFactory(resource);
二:ClassPathXmlApplicationContext  编译路径
        ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:appcontext.xml");
       ApplicationContext factory=new ClassPathXmlApplicationContext("appcontext.xml");   // src目录下的
       ApplicationContext factory=new ClassPathXmlApplicationContext("conf/appcontext.xml");   // src/conf 目录下的
       ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");
三 : 用文件系统的路径
  ApplicationContext factory=new FileSystemXmlApplicationContext("src/appcontext.xml");     
       //使用了  classpath:  前缀,作为标志,  这样,FileSystemXmlApplicationContext 也能够读入classpath下的相对路径
       ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:appcontext.xml");
       ApplicationContext factory=new FileSystemXmlApplicationContext("file:G:/Test/src/appcontext.xml");
       ApplicationContext factory=new FileSystemXmlApplicationContext("G:/Test/src/appcontext.xml");

四: XmlWebApplicationContext   是专为Web工程定制的。
ServletContext servletContext = request.getSession().getServletContext();    
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext );

本文来自: 中国自学编程网(www.zxbc.cn) 详细出处参考:http://www.zxbc.cn/html/20070614/22999.html


Spring配置文件是集成了Spring框架的项目的核心,引擎从哪里开始,中间都执行了哪些操作,小谈一下它的执行流程。

容器先是加载web.xml



接着是applicationContext.xml在web.xml里的注册



一种方法是加入ContextLoaderServlet这个servlet





1 <context-param> 
2         <param-name>contextConfigLocation</param-name> 
3         <param-value>/WEB-INF/applicationContext.xml</param-value> 
4     </context-param> 
5      <servlet> 
6         <servlet-name>context</servlet-name> 
7         <servlet-class> 
8             org.springframework.web.context.ContextLoaderServlet  
9         </servlet-class> 
10         <load-on-startup>0</load-on-startup> 
11     </servlet> 
复制代码


还有一种是添加ContextLoaderListener这个监听器



1 <context-param> 
2     <param-name>contextConfigLocation</param-name> 
3     <param-value>/WEB-INF/applicationContext.xml</param-value> 
4 </context-param> 
5  
6 <listener> 
7     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
8 </listener> 
复制代码


ContextLoaderServlet和ContextLoaderListener都是先创建ContextLoader的一个对象,然后调用它的initWebApplicationContex方法初始化WebApplicationContext获得一个对象;



spring加载多个配置文件,在web.xml中



1 <context-param>
2         <param-name>contextConfigLocation</param-name>
3         <param-value>classpath*:spring/*.xml</param-value>
4 </context-param>
5
6 <servlet>
7         <servlet-name>SpringContextServlet</servlet-name>
8         <servlet-class>
9             org.springframework.web.context.ContextLoaderServlet
10         </servlet-class>
11         <load-on-startup>3</load-on-startup>
12 </servlet>

猜你喜欢

转载自zkf60553.iteye.com/blog/1308920