【问题标题】:ServletInitializer file is created every time I create spring boot project from spring.io每次我从 spring.io 创建 Spring Boot 项目时都会创建 ServletInitializer 文件
【发布时间】:2021-02-13 09:55:49
【问题描述】:

每次我从 spring.io 创建一个项目时,都会在项目内部创建一个 ServletInitializer 文件。我只有 spring 云网关依赖项。这是该文件存在的原因吗?如果是,有人可以解释原因吗?

这些是它的内容:

package com.springcloudgatewayexample;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SpringCloudGatewayExampleApplication.class);
    }

}

【问题讨论】:

  • 我不完全确定,但如果 Spring 应用程序不是 Web 应用程序(使用嵌入式 tomcat),它将默认为传统的 WAR 存档。我相信SpringBootServletInitializer 用于配置WAR 文件。我在这里可能是错的,因此这是一个评论。我主要使用spring web的spring项目,我没有得到那个文件。
  • 谢谢,但我不认为缺少spring web 是该文件包含在生成的项目中的原因。当我添加Spring WebSpring Reactive Web 时,我仍然得到一个带有SpringBootServletInitializer 文件的项目。

标签: java spring spring-boot kotlin spring-cloud-gateway


【解决方案1】:

当您在使用 SpringInitializr 创建项目时选择打包为 WAR 而不是 JAR 时,就会出现这种情况。如果您选择打包为 JAR(默认选择),那么只会创建 1 个类,即具有 main 方法的 ApplicationClass 和 @SpringBootApplication。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 2020-07-03
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    相关资源
    最近更新 更多