spring怎么读多个文件(怎样加载多个Spring bean 配置文件)

本文目录
怎样加载多个Spring bean 配置文件
对于大多数的应用,从表现层的action,到持久层的DataSource,都被Spring 作为
bean 管理。如果这些bean 被配置在同一个文件中,阅读及维护该配置文件将是一件非
常有挑战的事情。
因此, Spring 建议:将一个大的配置文件分解成多个小的配置文件,使每个配置文
件仅仅管理功能近似于bean; 这样不仅可以分散配置文件,降低修改配置文件的风险,
而且更符合"分而治之"的软件工程原理。
多个配置文件最终需要汇总, ApplicationContext提供如下方式来汇总多个配置文件:
.使用App1icationContext 加载多个配置文件。
• Web 应用启动时加载多个配置文件。
• XML 配置文件中导入其他配置。
1 ApplicationContext 加载多个配置文件
ApplicatonContext 的常用实现类有如下两个:
• ClassPathXm1 ApplicationContext 。
• FileSystemXm1ApplicationContext 。
这两个类都可以用来加载多个配置文件,它们的构造器都可以接收一个数组,并在
该数组中存放多个配置文件。ClassPathXm1ApplicationContext 可采用如下代码加载多个
配置文件:
/I创建配置文件数组
/I假设有3 个配置文件: a.xml , b.xml , c.xml
Str工ng[) configLocations = {"a.xml" , "b.xml" , "c.xml"}
以配置文件数组为参数,创建ApplicationContext
ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocations);
与采用FileSystemXm1ApplicationContext创建ApplicationContext的方式相似,区别
仅在于二者搜索配置文件的路径不同:ClassPathXm1ApplicationContext通过CLASSPATH
路径搜索配置文件:而FileSystemXm1ApplicationContext则在当前路径搜索配置文件。
2 Web 应用启动时加载多个配置文件
参看5.12.3 节所述,通过ContextLoaderListener 也可加载多个配置文件,可利用
337
轻量级J2EE 企业应用实战一一-Struts+Spring+Hibernate 整合开发
《context-pararn》元素来指定多个配置文件位置,其配置如下:
《l-- 确定配置文件的位置一〉
《context-param》
《param-name》contextConfigLocation《/param-name》
《1-- 此处可以列出多个Spring 的XML 配置文件》
《param-value》/WEB-INF/daoContext.xml IWEB-INF/applicationContext.xml《1
param-value》
《context-param》
3 XML 配置文件中导人其他配置文件
配置文件本身和其子元素import. 可用于导入其他配置文件。具体的配置示例如下:
《?xml version="1.0" encod工口g="gb2312"?》
《!一指定Spring 配置文件的dtd》
《!DOCTYPE beans PUBLIC "-IISPR工NGIIDTD BEANIIEN"
’’htt p:/ /ww w.springframe work.o rg/dtd/spring-beans.dtd’’》
《!-- Spring 配置文件的根元素-》
《beans》
《!一导入第→份配置文件: serv工ces.xml一〉
《import resource="serv工ces.xml"l》
《!-- 导入第二份配置文件: resources/messageSource.xml 一〉
《import resource="resources/messageSource.xml"l》
《!-- 导入第二份配置文件: resourcesl themeSource.xml --》
《import resource="/resources/themeSource.xml"l》
《!-- 下面定义该文件垦的其他bean…〉
《bean id="beanl" class=". .."1》
《bean id="bea口2" class="..."I》
《/beans》
Spring中读取bean配置文件的几种方式
BeanFactory允许InputStream作为构造函数的参数,也可以org.springframework.core.io.Resource接口。下面这个例子是用ClassPathResource作为参数:
Resource resource = new ClassPathResource("bean.xml");
BeanFactory factory = new XmlBeanFactory(resource);
ActionBean action = (ActionBean) factory.getBean("actionBean");
如果同一个Bean在配置文件有多个bean的定义,则用下面的方法取得所有的对象:
Resource resource = new ClassPathResource("bean.xml");
ListableBeanFactory factory = new XmlBeanFactory(resource);
Map helloBeans = factory.getBeansOfType(ActionBean.class, false, false);
spring中如何加载多个配置文件
Spring加载多个配置文件的方式1.第一种,使用数组代码ApplicationContextcontex=newClassXmlApplicationContext(newString);2.第二种,只用通配符代码ApplicationContextcontex=newClassXmlApplicationContext("a*.xml");//但此种方法只对文件系统中的xml文件有效,针对jar包中的无效3.第三种,引入代码ApplicationContextcontex=newClassXmlApplicationContext("a1.xml");//在a1.xml中《importresource="a2.xml"///执行resource路径为相对a1.xml的路径

更多文章:
phpcms下载站(有没有phpcms v9的火车头采集入口)
2026年11月3日 15:10
十字路口红绿灯plc程序梯形图(简易欧姆龙PLC十字路口红绿灯梯形图)
2026年11月3日 14:50
js压缩图片最低能压缩多百分之多少?把vars.js压缩为vars.rar压缩文件怎么操作
2026年11月3日 11:10
lseek和fseek(read pread write pwrite fseek lseek是同一类函数吗)
2026年11月3日 08:30
字体大小在哪里调整(电脑字体大小在哪里调调电脑字体大小的方法)
2026年11月3日 04:40
网页页面设计的技巧有哪些?急求,jsp采用框架技术设计页面,如何写代码才能实现点击左侧框架内的链接,右侧框架内显示相应网页呢
2026年11月3日 03:00





