【问题标题】:Prevent Spring from Failing if One Bean Fails如果一个 Bean 失败,防止 Spring 失败
【发布时间】:2017-03-09 09:09:53
【问题描述】:

我们有一个应用程序在启动时使用 Spring 的 AnnotationConfigApplicationContext 创建 bean。我们正在尝试做的不是让 Spring 销毁所有创建的 bean,因此如果其中一个 bean 的创建失败,则会导致应用程序在启动时失败。是否有任何本机 Spring 配置或方法来完成此操作?

我尝试用我自己的自定义 AnnotationConfigApplicationContext 覆盖 AnnotationConfigApplicationContext 并在其中捕获异常。但发生的情况是,当抛出异常时,并没有创建所有剩余的 bean。

我们使用的是 Spring 4.3.0。

【问题讨论】:

  • 为什么?当发生异常时,基本上意味着您的应用程序(配置)错误,因此它无法/不会启动。那么为什么需要这个,通常在以奇怪/错误的方式使用框架时会发生这种情况。
  • Out app 是一个具有不同端点的 API,其中每个 bean 代表我们 API 的一个端点。如果一个 bean 或端点发生故障,我们仍然希望 API 的其余部分能够启动并拥有一些活动的端点,如果这有意义的话。

标签: java spring spring-mvc spring-annotations undertow


【解决方案1】:

解决这个问题的简单方法是通过 lazy 在您的 bean 声明中使用属性 lazy-init="true" 初始化 bean

【讨论】:

    猜你喜欢
    • 2019-12-12
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多