java - 如何从 spring bean 中删除属性

标签 java spring

我想从 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/

相关文章:

java - Java中的排序集合

java - 我需要从 java 类调用 Spring 服务,如何从 java 类设置 spring 应用程序的 Activity 配置文件

java - Spring 注入(inject)的 bean 线程安全

java - 使用 Spring 在应用程序启动后执行方法

java - 无法加载驱动程序类 : com. microsoft.jdbc.sqlserver.SQLServerDriver

java - 数据未插入到 Spring-Hibernate-envers webapp 中的审计表中

Java长度方法错误

java - 为 Django 设置 Cassandra - "ImportError: No module named pycassa"

Java : Compare same objects that they have same properties but do not points a same point in memory

java - 如何创建一个一次只接受一个连接的 rmi 服务器?