我想从春豆中删除一个属性,
此属性可以是对象,也可以是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/

10-12 03:49
查看更多