我正在学习春季靴工作。到目前为止,我主要使用JavaScript和Node。我正在完成一个教程,并且偶然发现了
package com.example.demosubmissionform;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan
@SpringBootApplication
public class DemoSubmissionFormApplication extends SpringBootServletInitializer {
// @Override
// protected SpringApplicationBuilder configure(SpringApplicationBuilder
// application) {
// return application.sources(DemoSubmissionFormApplication.class);
// }
public static void main(String[] args) {
SpringApplication.run(DemoSubmissionFormApplication.class, args);
}
}
我一直在研究代码,试图弄清楚它是如何工作的,并学习所使用的类。我已经浏览了文档,但是发现的信息并不能真正解释SpringApplicationBuilder类的功能。我已经注释掉了,该程序仍然可以正常运行。
很抱歉长期困扰。感谢您的协助。
P.S:@ComponentScan批注是多余的,对吗?看起来它已经带有@SpringBootApplication注释。
答案 0 :(得分:1)
将Spring Boot应用程序打包为war文件并将其部署到应用程序服务器或Servlet容器时,需要使用SpringApplicationBuilder
的代码。如果您要打包应用程序为jar文件,并使用java -jar
(使用Spring Boot的典型方法)运行它,则不需要configure
方法,也不需要扩展{ {1}}。
您可以在reference documentation中进一步了解SpringBootServletInitializer
,SpringBootServletInitializer
和传统战争部署。
您正确地认为SpringApplicationBuilder
注释是多余的。如您所说,它已经是@ComponentScan
的一部分。