首页 > 解决方案 > 如果在 Spring Context 中找不到 bean,如何提供自定义逻辑来搜索 bean

问题描述

如果 Spring 上下文找不到从我的 xml 引用的 bean,我希望能够在抛出 BeanNotFoundException(无论期望是什么)之前提供一些自定义逻辑(即查看另一个 Spring 上下文或以编程方式创建 bean)。

标签: springjavabeans

解决方案


您可以使用BeanFactoryPostProcessor动态定义您的 bean(单击链接查看说明)。

或者,如果您想以一种懒惰的方式(而不是在应用程序启动时)对您的 bean 进行操作,我强烈建议您不要这样做,因为您将遇到与您的 bean 配置状态相关的错误,这些错误在编译时不可见:无论如何,你当然可以在你的 ApplicationContext 中添加一个自定义的单例:而不是从 spring 调用 getBean(),如果没有找到,你的类将被调用来响应哪个 bean 对应于一个 bean 名称,你将间接有机会处理BeanNotFoundException

在此处查看有关第二个(不推荐)解决方案的帖子:如何将属性添加到应用程序上下文


推荐阅读