2017-01-22 31 views
0

私はSpring Boot Developmentで新しく、現在、jarファイルの外側にSpringアプリケーションの設定をロードする方法の問題には移行できません。JARファイルの外部でSpringの設定にアクセスする方法

私の既存のコードは、この

private ApplicationContext context; 

public static void main(String[] args){ 
    SpringApplication.run(SMPPEngine.c1ass); 
    new SMPPEngine(); 
} 

public SMPPEngine(){ 
    loadConfiguration(); 
    process(); 
} 

private void loadConfiguration(){ 
    context = new ClassPatthlApplicationContext(”application-context.xm1”); 
} 

のように見える私は何を達成したいことは、構成の変更があった場合、私はしないように、一つのディレクトリにアプリケーションのcontext.xmlの隣にjarファイルを持つことですapplication-context.xmlの変更を反映するために自分のコードを再コンパイルする必要があります。

私がインターネットで読んだことに基づいて、これはクラスパスの代わりに 'file://directory/application.xml'を使用することで可能です。しかし、後で使用する際の私の問題は、あなたのjarとファイルを別の場所に置いたときに、コードの再コンパイルから逃れる問題を解決しない新しいディレクトリを反映するためにコードを変更する必要があるということです。

私は私の問題が明らかにされ期待して、事前に君たち:) おかげですぐに応答を取得:)

答えて

0

これを行うには多くのアプローチがありますが、標準、あなたがアクセスするためのスプリングfile:接頭辞を使用することができますファイルシステムパス。

が、春のブーツで、あなたは

spring.config.location propertiyとapplication.propertiesでそれをspecifiyすることができ、または java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties

のようなしかし、あなたのコードのための春のブートjarファイルを実行すると、コマンドラインに追加することができ、実際にはは設定ファイルからspringコンテキストを再作成する必要がありますが、コンテキストインスタンスを取得したい場合は、注入するだけです。

@Autowired 
private ApplicationContext context; 
0

インフラストラクチャを使用している場合は、別の方法です。 Spring Cloud Configを使用することになります。 Bootアプリケーションを読み込みするように設定した後は、再コンパイルや再起動なしにいつでも変更することができます。

関連する問題