java bean配置文件_Spring中多配置文件及引用其他bean的方式
Spring多配置文件有什么好处?
按照目的、功能去拆分配置文件,可以提高配置文件的可读性与维护性,如将配置事务管理、数据源等少改动的配置与配置bean单独分开。
Spring读取配置文件的几种方式:
1、使用Spring自身提供的ApplicationContext方式读取
在Java程序中可以使用ApplicationContext两个实现类ClassPathXmlApplicationContext以及FileSystemXmlApplicationContext来读取多个配置文件,他们的构造器都可以接收一个配置文件数组。
如: ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocations);与采用FileSystemXmlApplicationContext创建ApplicationContext的方式相似,区别仅在于二者搜索配置文件的路径不同:ClassPathXmlApplicationContext通过CLASSPATH路径搜索配置文件:而FileSystemXmlApplicationContext则在当前路径搜索配置文件。
方法一:在初始化时保存ApplicationContext对象
代码:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");
说明:
这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:
import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc)
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)
ac1.getBean("beanId");
ac2.getBean("beanId");
说明:
这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。
上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。
方法三:继承自抽象类ApplicationObjectSupport
说明:
抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。
方法四:继承自抽象类WebApplicationObjectSupport
说明:
类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware
说明:
实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。Spring初始化时,会通过该方法将ApplicationContext 对象注入。
以上方法适合不同的情况,请根据具体情况选用相应的方法。
2、使用web工程启动时加载
在web.xml中配置web容器启动是自动加载哪些配置文件:
contextConfigLocation
/WEB-INF/spring/spring-core.xml
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/spring/spring-servlet.xml
1
springMVC
/
多个的时候可以用 * 号来代替。
app
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/applicationContext*.xml,/WEB-
INF/user_spring.xml
1
3、Xml配置文件中导入其他配置文件
在/WEB-INF/applicationContext.xml配置应用服务去加载,可以在applicationContext.xml中用import引入其他的配置文件
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
java bean配置文件_Spring中多配置文件及引用其他bean的方式相关推荐
- python 读取配置文件config_python中读取配置文件ConfigParser
在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介 ...
- 服务器多网卡配置文件,服务器中网卡配置文件
服务器中网卡配置文件 内容精选 换一换 下面以CentOS 6.9 (x86_64)操作系统为例,举例介绍裸金属服务器增强高速网卡的配置方法.RedHat系列.Oracle Linux系列.Euler ...
- java自动装配_Spring中自动装配的4种方式
Spring容器可以在不使用和元素的情况下自动装配相互协作的bean之间的关系,助于减少编写一个大的基于Spring的应用程序的XML配置的数量使用元素的autowire属性为一个bean定义指定自动 ...
- java 自动装配_spring自动装配是什么?spring自动装配方式
Spring是受欢迎的企业级Java应用程序开发框架,数以百万的来自世界各地的开发人员都在使用 Spring 框架创建高性能.易于测试和可重用的代码. 自动装配是Spring框架的重要功能,是使用Sp ...
- java响应事件_Swing中添加事件响应的三种处理方式说明
举例说明事件响应 在Swing中,事件响应是通过监听器对象来处理事件的方式实行的,这种方式被称为事件委托模型. 以JButton举例,它内部有一个名为listenerList的链表,在点击按钮时,会产 ...
- java hql查询_Spring 中常用的hql查询方法(getHibernateTemplate())(转)
示例:this.getHibernateTemplate().find("from bean.User"); 返回所有User对象 二.find(String queryStrin ...
- java spring 过滤器_spring中过滤器与拦截器的区别
具体代码 /** * 通过过滤器实现跨域处理 */ @Order(1) @Component @WebFilter(urlPatterns = { "/api/*"}, filte ...
- java 金钱计算_Java中涉及到金钱计算方法的两种方式
一.不直接使用float和double计算金钱的原因 java中涉及到浮点计算,就会有误差, float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.Big ...
- Spring中Bean管理操作基于XML配置文件方法实现
Spring中Bean管理操作基于XML配置文件方法实现 基于XML配置文件方式实现 1.基于`xml`方式创建对象 2.基于`xml`方式注入属性 1.创建类,定义属性和对应的set方法 2.在Sp ...
最新文章
- Java调用python打包的程序.exe,包括获取exec()中打印的日志,亲测有效
- 高级程序员到底高级在哪里?
- POJ3264[线段树]
- jbpm 6 vs activities 5评估(持续更新、亲测实际项目评估)
- OpenDDS安装与开发
- 对《构建之法》的一点认识
- HYSBZ 1010 玩具装箱toy (决策单调DP)
- gh0st源码分析与远控的编写(二)
- 修改FTP密码的三种方法
- Dataset和DataLoader构建数据通道
- 【jQuery】实现QQ联系人分组动画
- webAppbuilder微件使用教程1 快速入门
- android 7相机拍照功能介绍,android7 相机拍照流程
- 引文工具的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- Xshell学生版免费下载使用
- OAuth2资源服务器
- C# 超市满减打折优惠
- 微信小程序获取带表情的微信名乱码问题
- C++:运算符重载与类的赋值运算符重载函数
- js搞定网页的简繁转换
热门文章
- git修改远程仓库地址
- [NOIP模拟测试9]题(Problem) 题解 (组合数全家桶+dp)
- linux history记录格式修改
- ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)
- Syncthing源码解析 - 第三方库
- jquery 的3D Carousel插件参数说明
- 【spring 5】AOP:spring中对于AOP的的实现
- B - Networking - poj 1287
- 通过反射执行get、set方法
- Linux(CentOS)目录操作命令、文件操作命令、压缩解压缩命令