gpt4 book ai didi

java - 在 `spring-boot-starter-undertow`中提供了运行时 `build.gradle`,但 `:bootRun`仍使用Tomcat而不是undertow

转载 作者:行者123 更新时间:2023-12-03 05:37:25 32 4
gpt4 key购买 nike

我刚刚初始化了一个新的Spring Boot应用程序,并且build.gradle具有以下依赖关系:

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
providedRuntime 'org.springframework.boot:spring-boot-starter-undertow'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

当我运行 ./gradlew bootRun时,它正在使用Tomcat。我知道 starter-web包括Tomcat,但是 providedRuntime是否没有覆盖它?

我实际上如何使用undertow运行我的Spring Controller ?

编辑:

我刚刚意识到我的 ServletInitializer.java看起来像这样:
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(AccountServiceApplication.class);
}

}

这告诉我它正在初始化一个servlet,我假设它是基于依赖关系的 undertow,但是我错了吗?

最佳答案

您需要从构建中排除tomcat:

dependencies {
implementation ('org.springframework.boot:spring-boot-starter-web') {
exclude module: 'spring-boot-starter-tomcat'
}
providedRuntime 'org.springframework.boot:spring-boot-starter-undertow'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

关于java - 在 `spring-boot-starter-undertow`中提供了运行时 `build.gradle`,但 `:bootRun`仍使用Tomcat而不是undertow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55074935/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com