2017-03-03 5 views
0

基本的に何をしようとしているのですか?複数のApplicationContextでWebアプリケーションを構築することはありません。これはSpringApplicationBuilderで達成できます。私が直面している問題は、Spring-BootアプリケーションのすべてのApplicationContextを「ハードコード」する必要があることです。設定可能なSpring ApplicationContext階層を作成する

設定ごとに子モジュールのApplicationContextをロードする方法を探していますか?私は、特定のビルドビルド用のモジュールを組み込み、除外したいと考えています。これは可能ですか?ドメイン駆動型アプローチを使用しているので、モジュールはお互いに独立しています。

答えて

0

コマンドライン引数を使用して、実行するモジュールを決定できます。上記の単純な例では

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

関連する問題