创建具有多个子上下文的spring启动应用程序

问题描述 投票:13回答:1

我正在尝试使用具有分层应用程序上下文的spring boot创建应用程序。我目前的主要方法如下:

public static void main(String[] args) {
    new SpringApplicationBuilder(TestApplication.class)
            .child(AuditServiceConfiguration.class).web(true)
            .child(TaskServiceConfiguration.class).web(true)
            .run(args);
}

并且两个子配置注释为:

@EnableAutoConfiguration
@Configuration

我们的想法是让父上下文包含所有公共bean和每个子上下文,以便在与其兄弟姐妹隔离时运行自己的MVC。

不幸的是,当我运行上面的命令时,只会初始化并启动最后一个子上下文。

任何指向正确方向的人都会非常感激。

问候,

亚历山德罗

spring spring-boot applicationcontext hierarchical
1个回答
12
投票

child(...)方法创建并返回另一个SpringApplicationBuilder,所以当你调用第二个child(...)方法时,你没有为孩子实例化一个兄弟,你在第一个孩子上生孩子,这使得父母变成了爷爷。

除了笑话,看看sibling(...)方法,该方法允许使用相同的父级创建另一个上下文。

您还可以查看source,看看究竟发生了什么。

© www.soinside.com 2019 - 2024. All rights reserved.