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的方式相关推荐

  1. python 读取配置文件config_python中读取配置文件ConfigParser

    在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介 ...

  2. 服务器多网卡配置文件,服务器中网卡配置文件

    服务器中网卡配置文件 内容精选 换一换 下面以CentOS 6.9 (x86_64)操作系统为例,举例介绍裸金属服务器增强高速网卡的配置方法.RedHat系列.Oracle Linux系列.Euler ...

  3. java自动装配_Spring中自动装配的4种方式

    Spring容器可以在不使用和元素的情况下自动装配相互协作的bean之间的关系,助于减少编写一个大的基于Spring的应用程序的XML配置的数量使用元素的autowire属性为一个bean定义指定自动 ...

  4. java 自动装配_spring自动装配是什么?spring自动装配方式

    Spring是受欢迎的企业级Java应用程序开发框架,数以百万的来自世界各地的开发人员都在使用 Spring 框架创建高性能.易于测试和可重用的代码. 自动装配是Spring框架的重要功能,是使用Sp ...

  5. java响应事件_Swing中添加事件响应的三种处理方式说明

    举例说明事件响应 在Swing中,事件响应是通过监听器对象来处理事件的方式实行的,这种方式被称为事件委托模型. 以JButton举例,它内部有一个名为listenerList的链表,在点击按钮时,会产 ...

  6. java hql查询_Spring 中常用的hql查询方法(getHibernateTemplate())(转)

    示例:this.getHibernateTemplate().find("from bean.User"); 返回所有User对象 二.find(String queryStrin ...

  7. java spring 过滤器_spring中过滤器与拦截器的区别

    具体代码 /** * 通过过滤器实现跨域处理 */ @Order(1) @Component @WebFilter(urlPatterns = { "/api/*"}, filte ...

  8. java 金钱计算_Java中涉及到金钱计算方法的两种方式

    一.不直接使用float和double计算金钱的原因 java中涉及到浮点计算,就会有误差, float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.Big ...

  9. Spring中Bean管理操作基于XML配置文件方法实现

    Spring中Bean管理操作基于XML配置文件方法实现 基于XML配置文件方式实现 1.基于`xml`方式创建对象 2.基于`xml`方式注入属性 1.创建类,定义属性和对应的set方法 2.在Sp ...

最新文章

  1. Java调用python打包的程序.exe,包括获取exec()中打印的日志,亲测有效
  2. 高级程序员到底高级在哪里?
  3. POJ3264[线段树]
  4. jbpm 6 vs activities 5评估(持续更新、亲测实际项目评估)
  5. OpenDDS安装与开发
  6. 对《构建之法》的一点认识
  7. HYSBZ 1010 玩具装箱toy (决策单调DP)
  8. gh0st源码分析与远控的编写(二)
  9. 修改FTP密码的三种方法
  10. Dataset和DataLoader构建数据通道
  11. 【jQuery】实现QQ联系人分组动画
  12. webAppbuilder微件使用教程1 快速入门
  13. android 7相机拍照功能介绍,android7 相机拍照流程
  14. 引文工具的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  15. Xshell学生版免费下载使用
  16. OAuth2资源服务器
  17. C# 超市满减打折优惠
  18. 微信小程序获取带表情的微信名乱码问题
  19. C++:运算符重载与类的赋值运算符重载函数
  20. js搞定网页的简繁转换

热门文章

  1. git修改远程仓库地址
  2. [NOIP模拟测试9]题(Problem) 题解 (组合数全家桶+dp)
  3. linux history记录格式修改
  4. ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)
  5. Syncthing源码解析 - 第三方库
  6. jquery 的3D Carousel插件参数说明
  7. 【spring 5】AOP:spring中对于AOP的的实现
  8. B - Networking - poj 1287
  9. 通过反射执行get、set方法
  10. Linux(CentOS)目录操作命令、文件操作命令、压缩解压缩命令