我需要在運行時機會Spring bean屬性值。目前我正在做這樣春天設置抽象豆屬性值
Object bean = context.getBean(beanName);
BeanWrapper wrapper = PropertyAccessorFactory.forBeanPropertyAccess(bean);
wrapper.setPropertyValue(propertyName, newValue);
但一些豆類配置爲抽象
<bean id="abstractFoo" abstract="true" class="com.Foo" />
<bean id="bar" class="com.Bar">
<constructor-arg><bean parent="abstractFoo" /></constructor-arg>
</bean>
,並在這種情況下context.getBean("abstractFoo")
拋出BeanIsAbstractException
這真是簡單的例子,但我希望你明白了。
任何想法如何更改抽象bean的屬性值(在這種情況下'abstractFoo')? 我們正在使用彈簧2.5.4
編輯
改變一個XML例子更加具體。由於安全原因,abstractFoo被聲明爲抽象。
您需要謹慎從bean定義中區分出一個bean。例如' 'does * not *表示一個bean,只是一個bean定義。所以你不能以這個名字來請求一個bean,但是沒有這樣的bean。 –
skaffman
2011-03-31 10:30:03