`

转载:spring 中加载xml配置文件的几种方法

 
阅读更多
原文地址:http://noobjava.iteye.com/blog/976472
  • 一:Spring中的几种容器都支持使用xml装配bean,包括:
  •     XmlBeanFactory ,
  •     ClassPathXmlApplicationContext ,
  •     FileSystemXmlApplicationContext ,
  •     XmlWebApplicationContext
  • 加载这些容器的配置文件的xml有一下几种常见的方法:
  • 1:引用资源用XmlBeanFactory(不能实现多个文件相互引用)
  •     Resource resource = new ClassPathResource("appcontext.xml"); 
  •     BeanFactory factory = new XmlBeanFactory(resource); 
  •       从factory中获取相应资源文件中的bean,但是这种bean读不到引用了其他文件中的bean!
  • 2:引用应用上下文用ClassPathXmlApplicationContext
  •     ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");  
  •     ApplicationContext factory=new ClassPathXmlApplicationContext("conf/userConfig.xml");   // src/conf 目录下的  
  •     ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml"); 
  • 3:用文件系统的路径引用应用上下文用FileSystemXmlApplicationContext
  •     ApplicationContext factory=new FileSystemXmlApplicationContext("src/applicationContext.xml");       
  •     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"); 
  • 注意:在2、3的加载方式中可以加载多个配置文件,获取到ApplicationContext 对象中
  •     String[] configs = {"applicationContext.xml","user_spring.xml"}; 
  •     ApplicationContext ctx = new ClassPathXmlApplicationContext(configs); 
  •     //ApplicationContext ctx=new FileSystemXmlApplicationContext(configs); 
  •     AbstractDao myUserDAO =  (AbstractDao) ctx.getBean("userDao");       
  • 4:Web工程定制的加载方法 XmlWebApplicationContext
  •     ServletContext servletContext = request.getSession().getServletContext(); 
  •     ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext ); 
  • 注:web.xml里面可以定义两种参数:
  •         1、application范围内的参数,存放在servletcontext中。<context-param>中的参数(可以指定多个文件)
  •         2、servlet范围内的参数,只能在servlet的init()方法中取得, <init-param>中的参数,在init方法中用this.getInitParameter("param1")获取
  • 二:要是spring配置多个xml,并且这些文件相互应用的加载方式
  • 1:在web.xml配置,应用服务去加载
  •  
  •     <servlet> 
  •         <servlet-name>app</servlet-name> 
  •         <servlet-class> 
  •                   org.springframework.web.servlet.DispatcherServlet 
  •         </servlet-class> 
  •         <context-param> 
  •               <param-name>contextConfigLocation</param-name> 
  •               <param-value>/WEB-INF/applicationContext*.xml,/WEB-INF/user_spring*.xml</param-value> 
  •         </context-param> 
  •         <load-on-startup>1</load-on-startup>   
  •      </servlet> 
  • 2:在/WEB-INF/applicationContext.xml配置应用服务去加载
  •   可以在applicationContext.xml中用import引入其他的配置文件
  •     <import resource="user_spring.xml" /> 


分享到:
评论

相关推荐

    DWR.xml配置文件说明书(含源码)

    DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...

    高级开发spring面试题和答案.pdf

    SPI 机制(Java SPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制), 很多地方有用到: AOP Spring的AOP的底层实现原理; 为什么jdk动态代理是必须是接口 两种动态代理的区别 AOP实现方式:...

    使用MyEclipse创建Spring Boot项目demo

    3)配置加载配置文件的读取,开启注解 4)配置日志文件 … n) 配置完成之后部署 tomcat 调试 可能你还需要考虑各个版本的兼容性,jar 包冲突的各种可行性。 那么使用 Spring Boot 之后我们需要开发一个 web ...

    spring boot2.0以上版本整合mybatis+pagehelper+druid

    3)配置加载配置文件的读取,开启注解 4)配置日志文件 … n) 配置完成之后部署 tomcat 调试 可能你还需要考虑各个版本的兼容性,jar 包冲突的各种可行性。 那么使用 Spring Boot 之后我们需要开发一个 web ...

    Spring.net框架

    从中我们可以看出,我们实现了一个IocInCSharp.ConfigHandler类,用来处理配置文件中IocInCSharp\ objects结点中的内容。ConfigHandler类将根据该结点下的内容处理并创建一ConfigInfo对象(关于ConfigInfo、 ...

    ssh(structs,spring,hibernate)框架中的上传下载

     由于Spring通过代理Hibernate完成数据层的操作,所以原Hibernate的配置文件hibernate.cfg.xml的信息也转移到Spring的配置文件中:  代码 4 Spring中有关Hibernate的配置信息 1. 2. !-- 数据源的配置 //--> 3. ...

    java面试题

    多线程几种实现方法,同步? 答:多线程有两种实现方法,一种是继承Thread类或者实现Runnable接口。同步就是在方法返回类型后面加上synchronized。 c#中的委托,事件是不是委托? 答:委托就是将方法作为一个参数...

    千方百计笔试题大全

    70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73...

    java面试宝典

    70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73...

    cms后台管理

    找到jeecms-servlet-front-action.xml,在此配置文件中有 &lt;bean id="dynamicAct" class="com.jeecms.cms.action.front.DynamicPageAct"/&gt; 可以找到类DynamicPageAct,此类是首页模板。 在类DynamicPageAct中有 ...

    Java面试宝典2010版

    46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 47、sleep() 和 wait() 有什么区别? 48、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 ...

    最新Java面试宝典pdf版

    46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 29 47、sleep() 和 wait() 有什么区别? 30 48、同步和异步有何异同,在什么情况下分别使用他们?举例说明...

    asp.net知识库

    革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression Builders 怎么在ASP.NET 2.0中使用Membership asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建...

    Java面试笔试资料大全

    46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 29 47、sleep() 和 wait() 有什么区别? 30 48、同步和异步有何异同,在什么情况下分别使用他们?举例说明...

    Java语言基础下载

    线程中断/恢复的几种方式 178 创建线程的两种方式 179 线程的控制 180 实例分析 182 内容总结 189 独立实践 190 第十二章:高级I/O流 192 学习目标 192 I/O基础知识 193 字节流 193 字符流 194 节点流 194 过程流 ...

    JAVA面试宝典2010

    46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 29 47、sleep() 和 wait() 有什么区别? 30 48、同步和异步有何异同,在什么情况下分别使用他们?举例说明...

    java面试题大全(2012版)

    46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 29 47、sleep() 和 wait() 有什么区别? 30 48、同步和异步有何异同,在什么情况下分别使用他们?举例说明...

    Java面试宝典-经典

    46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 29 47、sleep() 和 wait() 有什么区别? 30 48、同步和异步有何异同,在什么情况下分别使用他们?举例说明...

Global site tag (gtag.js) - Google Analytics