我想从 spring bean 中删除一个属性, 这个属性可以是一个对象或者java原始类型(String,int,map..)
<bean id="test" class="me.test.xxxx">
<property name="user" ref="me.test.user"/>
<property name="other" ref="me.test.other"/>
</bean>
我创建一个新类来实现 BeanFactoryPostProcessor
并覆盖 PostProcessBeanFactory
我将在此方法中删除所有不需要的 bean,但我不知道如何从 bean 属性中删除对象属性。
谢谢。
最佳答案
目前尚不清楚您想要实现什么,但如果您想删除,例如,
<property name="other" ref="me.test.other"/>
在初始化 bean 之前,使用以下实现在您的上下文中声明一个 BeanFactoryPostProcessor
bean
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
BeanDefinition beanDefinition = beanFactory.getBeanDefinition("test"); // get the bean definition in some way
if (beanDefinition != null) {
beanDefinition.getPropertyValues().removePropertyValue("other"); // remove the property value based on some criterion
}
}
关于java - 如何从 spring bean 中删除属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21843612/