当前位置: 首页 > 知识库问答 >
问题:

有没有办法忽略(绕过)BeanException(BeanCreationException)并在Spring继续?

索令
2023-03-14

在加载时,Spring容器初始化bean。。。当它发现与Bean相关的错误时,它会停止并回滚(不是确切的术语)。。。我知道。

这是我们的条件。我们正在开发一种网络应用系统。(它很大)有几千个Spring bean。我们的客户要求如下。“在WAS重启过程中,即使一个或几个Bean有问题(加载时错误),忽略这些,系统必须继续......”

我们已经通过修改Spring的源代码满足了这个要求。。。但我认为这不是一个好的(正确的)方式。

好还有其他方法可以忽略BeansException吗?(首先,我说服客户理解忽略不是好办法,但失败了。)

共有1个答案

赏高格
2023-03-14

我认为一种选择是使用注释和@Autowire标记,设置为false。这样,如果Spring找到了bean,它就会自动将其连接起来。如果没有,则会得到一个空引用。

如果这不是一个选项,那么您可以实现Application ContextAware,并使用您获得的应用程序上下文手动连接东西。我更喜欢第一个选项。

然而,在任何情况下,我都不会考虑修改Spring代码。我认为这是危险的,它会让你要么永远支持你的定制Spring库,要么永远不更新Spring库。

 类似资料:
  • 我有一个json看起来像这样: 如您所见,loc对象有时是json对象,有时是双数组。在不编写自定义反序列化程序的情况下,有没有办法避免,并在loc对象是json对象而不是双数组时将其设置为null。

  • 问题内容: 使用PMD,如果要忽略特定的警告,则可以使该行被忽略。 FindBugs有类似的东西吗? 问题答案: FindBugs的初始方法涉及XML配置文件(也称为过滤器)。这确实不如PMD解决方案方便,但是FindBugs只能在字节码上工作,而不能在源代码上工作,因此注释显然不是一个选择。例: 但是,为解决此问题,FindBugs稍后引入了另一个基于注释的解决方案(请参阅参考资料),您可以在类

  • 问题内容: 我正在使用MySQL GUI,通过选择某些表并将从备份转储生成的语句运行到空表(新模式)中,以将某些站点迁移到CMS的新版本。旧表中有几列在新表中不存在,因此脚本会因以下错误而停止: 脚本行:1个“字段列表”中的未知列“ user_id” 挑选要导出的所需列,或编辑转储文件将非常乏味且耗时。要解决此问题,我将在生成错误时创建未使用的列,通过运行查询导入数据,然后在处理完该表后删除未使用

  • 我可以在写入之前读取表,并在写入新行之前删除匹配行。 阅读后,我可以筛选应用程序中的行。 我不喜欢这两个解决方案,因为它们似乎太复杂了,性能是一个很大的问题。有更好的办法吗?

  • 问题内容: 是否有可能以某种方式忽略此错误?我发现将自己不想运行的代码放在前面比注释它要容易得多(当注释重叠并且表现不佳时)… 问题答案: 否。这是编译时错误。因此,在运行课程之前,您 必须 摆脱它。 我通常要做的是在其前面放置一个虚假陈述。就像是: 使用此代码,您将不会出错。您将得到想要的东西。

  • 问题内容: 我试图将下拉菜单添加到已经具有全局“选择”样式的页面。有没有办法告诉新选择列表忽略全局样式?有大约1到2亿个使用全局样式的现有下拉列表,因此我不想重构现有的html。 问题答案: 没有简单的方法可以执行您要的操作,一种方法是创建一个CSS类,该类将重置特定元素及其子元素的所有适当属性,以使其更加完整,这是一个很好的起点特定于元素的CSS重置