当我们使用第三方库的时候, 或许会注入一些我们不需要的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");
}
}
}