配置SpringBootServletInitializer的方法

时间:2016-07-27 10:20:47

标签: spring-boot

我正在使用SpringBootServletInitializer创建应用程序。我不确定如何以及何时调用configure方法。我在方法中放置了一个print语句来检查它的调用位置。但是,当我运行应用程序时,我找不到打印件。我犯了一个愚蠢的错误,或者我从根本上误解了SpringBootServletInitializer的工作原理。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.annotation.Configuration;

@SpringBootApplication
@Configuration
public class DemoApplication extends SpringBootServletInitializer{

    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        builder.sources(DemoApplication.class);
        System.out.println("Called configure method");
        return builder;
     }

    public static void main(String[] args) {
       SpringApplication.run(DemoApplication.class, args);
    }
}

1 个答案:

答案 0 :(得分:0)

configure()方法使用SpringApplicationBuilder将您的类注册为应用程序的配置类。

如果将应用程序打包为WAR,您将能够以传统方式将其部署在任何Web容器上,这也将执行configure()方法中添加的逻辑。

如果要将其打包为JAR文件,则需要向main()方法添加相同的逻辑,以便嵌入式容器也可以将其拾取。