Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建可配置的Spring应用程序上下文层次结构_Java_Spring_Spring Boot_Domain Driven Design - Fatal编程技术网

Java 创建可配置的Spring应用程序上下文层次结构

Java 创建可配置的Spring应用程序上下文层次结构,java,spring,spring-boot,domain-driven-design,Java,Spring,Spring Boot,Domain Driven Design,我基本上想做的是用多个ApplicationContexts构建一个Webapp。这可以通过SpringApplicationBuilder实现。我面临的问题是,您必须在Spring Boot应用程序中硬编码所有ApplicationContexts 我正在寻找一种方法来加载每个配置的子模块的ApplicationContexts?我想包括和排除特定maven构建的模块。这可能吗?这些模块彼此独立,因为我们使用的是域驱动的方法。您可以简单地使用命令行参数来决定运行哪个模块 public enum

我基本上想做的是用多个ApplicationContexts构建一个Webapp。这可以通过SpringApplicationBuilder实现。我面临的问题是,您必须在Spring Boot应用程序中硬编码所有ApplicationContexts


我正在寻找一种方法来加载每个配置的子模块的ApplicationContexts?我想包括和排除特定maven构建的模块。这可能吗?这些模块彼此独立,因为我们使用的是域驱动的方法。

您可以简单地使用命令行参数来决定运行哪个模块

public enum Module {
  MODULE1(Context1.class), MODULE2(Context2.class), MODULE3(Context3.class);
  Module(Class contextClass) ...
}

SpringApplicationBuilder builder = new SpringApplicationBuilder()
    .sources(Parent.class)
    .bannerMode(Banner.Mode.OFF);
String[] modules = args[0].split(",");
for(int i = 0; i < modules.length; i++){
  builder.child(Module.valueOf(modules[i]).contextClass);
}
builder.run(args);
在上面的简单示例中,您可以为启动提供逗号分隔的模块,如: mvn spring引导:run-Drun.arguments=module2,module3