2016-04-13 7 views
1

私はTomcat 8.0.32にSpringブート戦争を展開しようとしています。私はApplicationContextInitializerクラスを以下に示すように定義しました。しかし、私がTomcatを起動すると、ApplicationContextInitializerのinitializeメソッドが呼び出されることはありません。私はここで何か間違っているよ。ご協力いただきありがとうございます。TomcatにSpringブートアプリケーションをデプロイするときにApplicationContextInitializerが呼び出されない

public class Application extends SpringBootServletInitializer { 
public static void main(String[] args) throws Exception { 
     SpringApplication app = new SpringApplication(Application.class); 
     app.addInitializers(new ApplicationContextInitializer<?>[] { new DemoInitializer() }); 
     app.run(args); 
    } 
} 
+0

私はApplicationクラスにcreateSpringApplicationBuilderを上書きしなければならなかったとSpringApplicationBuilderで設定初期化子私のために働きました。! – Coder

答えて

0

Spring Boot docsによると、あなたは戦争のように起動時にconfigure(SpringApplicationBuilder builder)メソッドをオーバーライドしてSpringApplicationBuilderApplicationContextInitializerを追加する必要があります。 CustomInitializerがあなたのApplicationContextInitializerここであなたは(実行可能なアプリケーションと、このような戦争の両方に初期化子を使用可能にすることができます

@SpringBootApplication 
public class Application extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { 
     return configureApplication(builder); 
    } 

    public static void main(String[] args) { 
     configureApplication(new SpringApplicationBuilder()).run(args); 
    } 

    private static SpringApplicationBuilder configureApplication(SpringApplicationBuilder builder) { 
     return builder.sources(Application.class).initializers(new CustomInitializer()); 
    } 

} 
関連する問題