我一直在application.properties
的{{1}}文件中使用以下属性,没有任何问题。
spring-boot.version 1.5.6.RELEASE
这是一种解决方法,可以在库类中启用使用server.servletPath=/*
的函数getPathInfo()
来获得有效值而不是javax.servlet.http.HttpServletRequest
的方法。
我不得不采用这种解决方法,因为该库jar不再受支持。
当我将应用程序升级到null
spring-boot.version 2.1.7.RELEASE
更改为server.servletPath
。
我尝试设置以下属性,但它不起作用
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;
}
来为此物业提供可行的解决方案吗?
谢谢, 迪努
答案 0 :(得分:1)
在最新的春季启动版本上使用以下配置属性:
server.servlet.contextPath=/*
答案 1 :(得分:1)
较新的弹簧版本的正确设置是:
spring.mvc.servlet.path=/some/path
这将更改DispatcherServlet的映射,因此spring服务的所有资源都将映射到此路径。
如果您设置:
server.servlet.contextPath=/some/path
整个Web上下文已更改。
主要区别在于,设置分派器servlet路径允许您在其他路径上注册其他servlet,而设置了上下文路径后,spring boot的tomcat只能在该上下文路径下提供内容。