代码之家  ›  专栏  ›  技术社区  ›  user3681558

如何用Java配置覆盖springbean

  •  -1
  • user3681558  · 技术社区  · 8 年前

    所以我有自己的实现。我尝试的第一件事是使用@组件注释并自动连接依赖项。在构造函数中添加了一个断点,结果它从未被调用。所以我意识到我的定义必须比zuul的更早加载。所以我创建了一个带有@configuration annotation和 @Order(Ordered.HIGHEST_PRECEDENCE)

    1 回复  |  直到 8 年前
        1
  •  1
  •   user3681558    8 年前

    事实证明,在加载配置类定义时,Spring遵循一定的顺序,这就是重写发生的地方。班级组织。springframework。上下文注释。ConfigurationClassParser在方法doProcessConfigurationClass()中有详细的逻辑。我将把我的简化摘要或排序规则放在这里:

    1. 如果应用程序类(定义main()方法的地方)中定义了任何类,则会对它们进行解析,并首先注册其中的定义
    2. 然后它将添加@Import引入的定义
    3. 然后,它将添加由@ImportResource引入的定义
    4. 然后在应用程序类中添加@bean方法的定义
    5. 然后尝试对应用程序类扩展的任何父类执行上述相同的步骤。

    为了解决我的问题,我在应用程序类中添加了一个@Bean注释方法,并按预期进行实例化和重写。

    推荐文章