SpringBoot 使用 BeanDefinitionRegistryPostProcessor 移除 Bean

发布时间:2024年01月23日

当我们使用第三方库的时候, 或许会注入一些我们不需要的Bean, 此时可以通过一些手段移除该Bean

BeanDefinitionRegistryPostProcessor

package kim.nzxy.demo.config;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.stereotype.Component;

/**
 * @author ly-chn
 */
@Component
public class BeanFilter implements BeanDefinitionRegistryPostProcessor {
    @Override
    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
        // 如果不清楚有哪些Bean, 可以打印一下看看
        // String[] beanDefinitionNames = registry.getBeanDefinitionNames();
        // System.out.println("beanDefinitionNames = " + Arrays.toString(beanDefinitionNames));
        if (registry.containsBeanDefinition("要移除的bean name")) {
            registry.removeBeanDefinition("要移除的bean name");
        }
    }
}

文章来源:https://blog.csdn.net/xiaoyanhhh/article/details/135767395
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。