2016-02-05 9 views
8

カスタムWebContextInitializerをWebアプリケーションに追加する方法の1つは、web.xmlファイルに以下のように追加することです。カスタムApplicationContextInitializerをスプリングブートアプリケーションに追加する方法は?

<context-param> 
    <param-name>contextInitializerClasses</param-name> 
    <param-value>somepackage.CustomApplicationContextInitializer</param-value> 
</context-param> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

しかし、私は春のブートを使用しておりますので、私はちょうどCustomApplicationContextInitializerを追加するためのweb.xmlを作成する必要はありませんどのような方法はありますか?

答えて

21

あなたはまた、実行する前に、それは

new SpringApplicationBuilder(YourApp.class) 
    .initializers(YourInitializer.class); 
    .run(args); 

それは

application.addInitializers(YourInitializer.class); 
application.run(args); 

又はビルダーで

SpringApplicationなかったあなたにそれらを追加することができます META-INF/spring.factories

org.springframework.context.ApplicationContextInitializer=\ 
com.example.YourInitializer 

に登録することができます最初の一見で医者から明らかなので、私は#5091を開いたoチェック。

+1

や 'context.initializer.classes = com.example.YourInitializer'にだけ簡単に述べています。私はこのアプローチが好きです。なぜなら、環境固有のプロパティファイルを使ってイニシャライザを有効/無効にすることができるからです。 –

+0

@JeffSheetsそれがうまく動作し、私にとって最も便利です。回答として投稿する必要があります –

2

もう1つの方法は、プロパティ/ ymlファイルでcontext.initializer.classes=com.example.YourInitializerを使用することです。私はこのアプローチが好きです。なぜなら、環境固有のpropsファイルを使ってイニシャライザを有効/無効にできるからです。

これは、プロパティファイルにspring boot docs

関連する問題