一:Spring中的几种容器都支持使用xml装配bean,包括:

  • XmlBeanFactory ,
  • ClassPathXmlApplicationContext ,
  • FileSystemXmlApplicationContext ,
  • XmlWebApplicationContext

加载这些容器的配置文件的xml有一下几种常见的方法: 
1:引用资源用XmlBeanFactory(不能实现多个文件相互引用)

Java代码  
  1. Resource resource = new ClassPathResource("appcontext.xml");
  2. BeanFactory factory = new XmlBeanFactory(resource);

从factory中获取相应资源文件中的bean,但是这种bean读不到引用了其他文件中的bean! 
2:引用应用上下文用ClassPathXmlApplicationContext

Java代码  
  1. ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
  2. ApplicationContext factory=new ClassPathXmlApplicationContext("conf/userConfig.xml");   // src/conf 目录下的
  3. ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/Test/src/appcontext.xml");

3:用文件系统的路径引用应用上下文用FileSystemXmlApplicationContext

Java代码  
  1. ApplicationContext factory=new FileSystemXmlApplicationContext("src/applicationContext.xml");
  2. ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:appcontext.xml");
  3. ApplicationContext factory=new FileSystemXmlApplicationContext("file:G:/Test/src/appcontext.xml");
  4. ApplicationContext factory=new FileSystemXmlApplicationContext("G:/Test/src/appcontext.xml");

注意:在2、3的加载方式中可以加载多个配置文件,获取到ApplicationContext 对象中

Java代码  
  1. String[] configs = {"applicationContext.xml","user_spring.xml"};
  2. ApplicationContext ctx = new ClassPathXmlApplicationContext(configs);
  3. //ApplicationContext ctx=new FileSystemXmlApplicationContext(configs);
  4. AbstractDao myUserDAO =  (AbstractDao) ctx.getBean("userDao");

4:Web工程定制的加载方法 XmlWebApplicationContext

Java代码  
  1. ServletContext servletContext = request.getSession().getServletContext();
  2. 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配置,应用服务去加载

Xml代码  
  1. <servlet>
  2. <servlet-name>app</servlet-name>
  3. <servlet-class>
  4. org.springframework.web.servlet.DispatcherServlet
  5. </servlet-class>
  6. <context-param>
  7. <param-name>contextConfigLocation</param-name>
  8. <param-value>/WEB-INF/applicationContext*.xml,/WEB-INF/user_spring*.xml</param-value>
  9. </context-param>
  10. <load-on-startup>1</load-on-startup>
  11. </servlet>

2:在/WEB-INF/applicationContext.xml配置应用服务去加载 
  可以在applicationContext.xml中用import引入其他的配置文件

Xml代码  
  1. <import resource="user_spring.xml" />

转载于:https://www.cnblogs.com/xm1-ybtk/p/5112072.html

加载spring上下文的多种方式总结相关推荐

  1. 通过ApplicationContextAware加载Spring上下文环境

    项目用到了ApplicationContextAware,通过它Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中的setApplicationContex ...

  2. Spring中加载xml配置文件的六种方式

    Spring中加载xml配置文件的六种方式 博客分类: Spring&EJB XMLSpringWebBeanBlog  因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装 ...

  3. java spring包_java 自定义加载器,加载spring包,动态加载实现,jar包隔离,tomcat加载webapp方式...

    java 自定义加载器,加载spring包,动态加载实现,jar包隔离,tomcat加载webapp方式 发布时间:2018-08-20 12:02, 浏览次数:774 , 标签: java spri ...

  4. SpringBoot加载spring.factories的价值

    SpringBoot加载spring.factories的价值 在springboot的各个依赖包下,我们经常看到META-INF/spring.factories这个文件.spring.factor ...

  5. K8s 集群使用 ConfigMap 优雅加载 Spring Boot 配置文件

    文章目录 1.Spring Boot 加载配置介绍 2.环境.软件准备 3.Spring Boot 示例工程 Demo 4.K8s ConfigMap 加载工程配置文件 4.1.直接加载环境的配置文件 ...

  6. web前端高级React - React从入门到进阶之组件的懒加载及上下文Context

    第二部分:React进阶 系列文章目录 第一章:React从入门到进阶之初识React 第一章:React从入门到进阶之JSX简介 第三章:React从入门到进阶之元素渲染 第四章:React从入门到 ...

  7. android 漫画加载方案,Android加载长图的多种方案分享

    背景介绍 在某些特定场景下,我们需要考虑加载长图的需求,比如加载一幅<清明上河图>,这个好像有点过分了,那就加载1/2的<清明上河图>吧... 那TMD还不是一样道理. 言归正 ...

  8. 手动加载spring配置文件

    更多Java架构师核心资料持续更新中https://github.com/kepeihong/data.git,内推阿里请查看链接 手动加载Spring配置文件有两个类,分别是ClassPathXml ...

  9. QML for Android 加载图片资源的几种方式

    前言 前段时间用 QML 做一个简单的 android 程序,需要打开 android手机本地图片,原本是一个非常简单的功能,但是碰到一些坑着实的被坑了一把,然而在网上并没有找到相关的文档,这里做个总 ...

最新文章

  1. Python--练习及面试题
  2. OutLook最小化到托盘
  3. [spring boot] 01 环境搭建 - 配置java和mvn环境
  4. 解决Pytohn安装第三方库出现read timed out 问题
  5. CF1491H Yuezheng Ling and Dynamic Tree(分块)
  6. 7-110 吃火锅 (15 分)
  7. 老表,教你一招啊!!!如何用python实现将csv文件快速导入数据库,建议收藏!!!
  8. 从单体式架构迁移到微服务架构
  9. 18、基于STM32的自动浇花系统
  10. 计算地球表面两点之间的距离
  11. Protege-OWL API中文版
  12. 连锁酒店网络互联解决方案
  13. Multisim基本电路仿真
  14. 分享tushare的使用方法
  15. 平面设计中的字体设计新花样
  16. Xshell安装报错1605
  17. 中兴通讯智能手机生产链探秘
  18. 激流勇进,在创新中求发展
  19. matlab ode45三体问题,关于ode45中erf函数(输入必须为实数完全数的报错问题)
  20. 敢于追求梦想 人生才会辉煌 月薪19000

热门文章

  1. mysql global temporary table_【转】MySQL Temporary Table相关问题的探究
  2. html调出手机系统设置,手机怎么打开路由器设置界面?
  3. 为什么jsp写script代码报错_JSP 报错:ReferenceError: $ is not defined
  4. java如何跳出循环6,Java循环结结构
  5. python 模糊匹配文件名 glob_Python: glob匹配文件
  6. 从零开始学习docker(十六)Swarm mode 创建集群
  7. 牛逼!Python常用数据类型的基本操作(长文系列第①篇)
  8. Android 过滤无效录音数据,android – MediaRecorder类记录音频的问题 – prepare()给出异常 – 权限被拒绝...
  9. 绿建科技加密图纸查看器安装_施工图看不懂?1.1G工程施工图纸详解,253页图文合集一查就清楚...
  10. 多线程爬虫python_一个简单的多线程Python爬虫