当前位置: 首页 > 后端技术 > Java

【Tips】去掉不需要的SpringBean

时间:2023-04-01 20:42:31 Java

背景SpringBoot项目引入公司其他公共基础包。项目启动时,Spring会初始化基础包中的bean。有一个bean和项目已有的bean冲突,影响到服务上。不要让Spring在解决方案项目启动时初始化这个冲突的bean。实践Spring提供了BeanDefinitionRegistry接口来操作注册的Bean列表beanDefinitionMap。@BeanpublicBeanDefinitionRegistryPostProcessorremoveRegistryBeanPostProcessor(){returnnewBeanDefinitionRegistryPostProcessor(){@OverridepublicvoidpostProcessBeanDefinitionRegistry(BeanDefinitionRegistryregistry)throwsBeansException{if(registry.containsBeanDefinition("要从登记表中移出"){Beanremotion.Beanremostregistry)"要从注册列表中移除的bean名称");}}@OverridepublicvoidpostProcessBeanFactory(ConfigurableListableBeanFactorybeanFactory)throwsBeansException{}};}