加载spring上下文的多种方式总结
一: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" />
转载于:https://www.cnblogs.com/xm1-ybtk/p/5112072.html
加载spring上下文的多种方式总结相关推荐
- 通过ApplicationContextAware加载Spring上下文环境
项目用到了ApplicationContextAware,通过它Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中的setApplicationContex ...
- Spring中加载xml配置文件的六种方式
Spring中加载xml配置文件的六种方式 博客分类: Spring&EJB XMLSpringWebBeanBlog 因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装 ...
- java spring包_java 自定义加载器,加载spring包,动态加载实现,jar包隔离,tomcat加载webapp方式...
java 自定义加载器,加载spring包,动态加载实现,jar包隔离,tomcat加载webapp方式 发布时间:2018-08-20 12:02, 浏览次数:774 , 标签: java spri ...
- SpringBoot加载spring.factories的价值
SpringBoot加载spring.factories的价值 在springboot的各个依赖包下,我们经常看到META-INF/spring.factories这个文件.spring.factor ...
- K8s 集群使用 ConfigMap 优雅加载 Spring Boot 配置文件
文章目录 1.Spring Boot 加载配置介绍 2.环境.软件准备 3.Spring Boot 示例工程 Demo 4.K8s ConfigMap 加载工程配置文件 4.1.直接加载环境的配置文件 ...
- web前端高级React - React从入门到进阶之组件的懒加载及上下文Context
第二部分:React进阶 系列文章目录 第一章:React从入门到进阶之初识React 第一章:React从入门到进阶之JSX简介 第三章:React从入门到进阶之元素渲染 第四章:React从入门到 ...
- android 漫画加载方案,Android加载长图的多种方案分享
背景介绍 在某些特定场景下,我们需要考虑加载长图的需求,比如加载一幅<清明上河图>,这个好像有点过分了,那就加载1/2的<清明上河图>吧... 那TMD还不是一样道理. 言归正 ...
- 手动加载spring配置文件
更多Java架构师核心资料持续更新中https://github.com/kepeihong/data.git,内推阿里请查看链接 手动加载Spring配置文件有两个类,分别是ClassPathXml ...
- QML for Android 加载图片资源的几种方式
前言 前段时间用 QML 做一个简单的 android 程序,需要打开 android手机本地图片,原本是一个非常简单的功能,但是碰到一些坑着实的被坑了一把,然而在网上并没有找到相关的文档,这里做个总 ...
最新文章
- Python--练习及面试题
- OutLook最小化到托盘
- [spring boot] 01 环境搭建 - 配置java和mvn环境
- 解决Pytohn安装第三方库出现read timed out 问题
- CF1491H Yuezheng Ling and Dynamic Tree(分块)
- 7-110 吃火锅 (15 分)
- 老表,教你一招啊!!!如何用python实现将csv文件快速导入数据库,建议收藏!!!
- 从单体式架构迁移到微服务架构
- 18、基于STM32的自动浇花系统
- 计算地球表面两点之间的距离
- Protege-OWL API中文版
- 连锁酒店网络互联解决方案
- Multisim基本电路仿真
- 分享tushare的使用方法
- 平面设计中的字体设计新花样
- Xshell安装报错1605
- 中兴通讯智能手机生产链探秘
- 激流勇进,在创新中求发展
- matlab ode45三体问题,关于ode45中erf函数(输入必须为实数完全数的报错问题)
- 敢于追求梦想 人生才会辉煌 月薪19000
热门文章
- mysql global temporary table_【转】MySQL Temporary Table相关问题的探究
- html调出手机系统设置,手机怎么打开路由器设置界面?
- 为什么jsp写script代码报错_JSP 报错:ReferenceError: $ is not defined
- java如何跳出循环6,Java循环结结构
- python 模糊匹配文件名 glob_Python: glob匹配文件
- 从零开始学习docker(十六)Swarm mode 创建集群
- 牛逼!Python常用数据类型的基本操作(长文系列第①篇)
- Android 过滤无效录音数据,android – MediaRecorder类记录音频的问题 – prepare()给出异常 – 权限被拒绝...
- 绿建科技加密图纸查看器安装_施工图看不懂?1.1G工程施工图纸详解,253页图文合集一查就清楚...
- 多线程爬虫python_一个简单的多线程Python爬虫