这是Spring手册中关于该类的使用说明:
引用
另一个bean工厂后置处理器PropertyOverrideConfigurer类似于PropertyPlaceholderConfigurer。但是与后者相比,前者对于bean属性可以有缺省值或者根本没有值。如果起覆盖作用的Properties文件没有某个bean属性的内容,那么将使用缺省的上下文定义。
bean工厂并不会意识到被覆盖,所以仅仅察看XML定义文件并不能立刻知道覆盖配置是否被使用了。在多个PropertyOverrideConfigurer实例中对一个bean属性定义了不同的值时,最后定义的值将被使用(由于覆盖机制)。
Properties文件的配置应该是如下的格式:
beanName.property=value
一个properties文件可能是下面这样的:
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.url=jdbc:mysql:mydb
这个示例文件可用在这样一个bean容器:包含一个名为dataSource的bean,并且这个bean有driver和url属性。
注意它也支持组合的属性名称,只要路径中每个组件除了最后要被覆盖的属性外全都是非空的(比如通过构造器来初始化),在下例中:
foo.fred.bob.sammy=123
foo bean的fred属性的bob属性的sammy属性被设置为数值123。
可是,我按着上面配置,Spring却报告错误,没有成功配置,下面把我的实验,简单介绍一下:
<bean class="org.springframework.beans.factory.config.PropertyOverrideConfigurer">
<property name="locations">
<list>
<value>classpath:com/baobaotao/place/car.properties</value>
</list>
</property>
</bean>
<bean id="car" class="com.baobaotao.place.Car">
<property name="price" value="100"/>
<property name="maxSpeed" value="120"/>
</bean>
Car的类代码如下:
package com.baobaotao.place;
public class Car {
private int maxSpeed;
public String brand;
private double price;
//get/setter
}
car.properties这个属性文件如下:
car.maxSpeed=250
car.price=20000.00
Spring报出的错误如下:
org.springframework.beans.factory.BeanInitializationException: Could not process key 'car.maxSpeed' in PropertyOverrideConfigurer; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'car' is defined
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'car' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:338)
at org.springframework.beans.factory.config.PropertyOverrideConfigurer.applyPropertyValue(PropertyOverrideConfigurer.java:139)
at org.springframework.beans.factory.config.PropertyOverrideConfigurer.processKey(PropertyOverrideConfigurer.java:127)
at org.springframework.beans.factory.config.PropertyOverrideConfigurer.processProperties(PropertyOverrideConfigurer.java:99)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:75)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:414)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:328)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:92)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
at com.baobaotao.place.TestPropertyPlace.setUp(TestPropertyPlace.java:17)
...
不知有没有使用过该类的朋友,请分享一下经验,谢谢!
分享到:
相关推荐
请教:用vb写了一个打印当前页的命令,但总是出现打印窗口,有没有办法不出现这个窗口直接打印 悬赏分:25 - 解决时间:2010-2-4 11:07 因为经常需要打印当前的某一页而不是全部,所以在网上找到这个命令,建立宏...
NULL 博文链接:https://tywo45.iteye.com/blog/267836
(2)游戏中有四个字,每个字中都藏着一道题目。在闯关的过程中,遇到难题自己不能解决时,你可以采用各种方式向人请教,当你们全部闯关成功时,你们会得到一份意外的惊喜哟。大家想要吗?好,谁先来闯关?你想闯哪...
NULL 博文链接:https://jiansi0424-163-com.iteye.com/blog/284158
部编三年级上册语文口语交际:请教
请教一下各位大神,我想新增一个类模块 应该如何做
问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,
2021部编版语文三年级上册口语交际:请教.pptx
vb 用picturebox实现图片放大缩小鼠标拖放滚轮缩放 这个测试程序满足基本要求,如有更高的要求可61303072qq联系本人 (滚轮是需要按住ctrl键然后按鼠标滚轮就可以了。可以在代码里屏蔽ctrl键的判断)
新人教统编版三年级上册语文 口语交际:请教 教学课件.pptx
新人教统编版三年级上册语文 口语交际:请教 优秀教案.docx
新人教统编版三年级上册语文 口语交际:请教 优秀教学课件.pptx
请教Farrow结构滤波器...小弟要设计一个基于Farrow结构的抽取滤波器,用在一个数字中频接受系统中,实现任意采样率的转换,不太明白滤波器的系数如何计算出来,有没有人做过呢?matlab中有函数或者工具箱可以实现吗?
新人教统编版三年级上册语文 口语交际:请教 教案教学设计.docx
新人教统编版三年级上册语文 口语交际:请教 优质教学反思.docx
新人教统编版三年级上册语文 口语交际:请教 优秀教学反思.docx
请教几个数学问题
第1问: Q:请问在初始化CPU堆栈的时候一开始在执行mov r0, ...A:是循环右移,就是一个0—255 之间的数左移或右移偶数位的来的,也就是这个数除以4一直除, 直到在0-255的范围内它是整数就说明是可以的! ..................
新人教统编版五四制三年级上册语文 口语交际:请教 优秀教案.docx
新五四制人教统编版三年级上册语文 口语交际:请教 教学课件.pptx