请求报错,调试控制器函数没有触发。 怀疑是请求参数中含有字符 [ ]
由博客了解到是由于Tomcat的新版本中增加了一个新特性,严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。
解决方法:修改tomcat配置
@SpringBootApplication @EnableAsync public class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); } //允许http请求含有字符[]{} @Bean public TomcatServletWebServerFactory tomcatServletWebServerFactory (){ // 修改内置的 tomcat 容器配置 TomcatServletWebServerFactory tomcatServlet = new TomcatServletWebServerFactory(); tomcatServlet.addConnectorCustomizers( (TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "[]") ); return tomcatServlet ; } }