gpt4 book ai didi

java - server.servletPath=/* 在 spring-boot.version 2.1.7.RELEASE 中不起作用

转载 作者:行者123 更新时间:2023-12-02 09:33:38 24 4
gpt4 key购买 nike

我一直在 application.properties 文件中使用 spring-boot.version 1.5.6.RELEASE 中的以下属性,没有任何问题。

server.servletPath=/*

这是一种在库类中启用方法的解决方法,该方法使用 javax.servlet.http.HttpServletRequest 的函数 getPathInfo() 来获取有效值null

我不得不采用这种解决方法,因为不再支持该库 jar。

当我将应用程序升级到 spring-boot.version 2.1.7.RELEASE

时,此解决方法开始失败

server.servletPath 从 Spring Boot 2 开始更改为 spring.mvc.servletPath

我尝试设置以下属性,但它不起作用

spring.mvc.servletPath=/*

我还在我的配置类中尝试了以下功能,但它不起作用。

@Bean
public DispatcherServletRegistrationBean dispatcherServletRegistration(
DispatcherServlet dispatcherServlet,
ObjectProvider<MultipartConfigElement> multipartConfig) {
DispatcherServletRegistrationBean registration = new DispatcherServletRegistrationBean(
dispatcherServlet, "/*");
registration.setName("dispatcherServlet");
registration.setLoadOnStartup(-1);
multipartConfig.ifAvailable(registration::setMultipartConfig);
return registration;
}

您能否使用spring-boot.version 2.1.7.RELEASE为该属性提供一个可行的解决方案?

谢谢,迪努族

最佳答案

较新的 Spring 版本的正确设置是:

spring.mvc.servlet.path=/some/path

这改变了DispatcherServlet的映射,因此spring提供的所有资源都映射到这个路径。

如果您设置:

server.servlet.contextPath=/some/path

整个网络环境都改变了。

主要区别在于,设置调度程序 servlet 路径允许您在其他路径上注册其他 servlet,而设置上下文路径时,Spring Boot 的 tomcat 只能提供该上下文路径下的内容。

关于java - server.servletPath=/* 在 spring-boot.version 2.1.7.RELEASE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57733555/

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