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

时间:2015-08-19 13:48:55

标签: spring spring-boot applicationcontext hierarchical

我尝试使用具有分层应用程序上下文的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。

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

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

此致

的Alessandro

1 个答案:

答案 0 :(得分:12)

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

除了笑话,看看sibling(...)方法,它允许用同一个父母创建另一个上下文。

您还可以查看source,了解具体情况。