【问题标题】:Create configurable Spring ApplicationContext Hierarchy创建可配置的 Spring ApplicationContext Hierarchy
【发布时间】:2017-03-03 12:10:25
【问题描述】:

我基本上想要做的是构建一个具有多个 ApplicationContexts 的 Webapp。这可以通过 SpringApplicationBuilder 实现。我面临的问题是,您必须在 Spring-Boot 应用程序中“硬编码”所有 ApplicationContexts (https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-spring-application.html#boot-features-fluent-builder-api)

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

【问题讨论】:

    标签: java spring spring-boot domain-driven-design


    【解决方案1】:

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

    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-boot:run -Drun.arguments=module2,module3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多