Java Spring Boot 2.2.1后缀模式问题

Java Spring Boot 2.2.1后缀模式问题,java,spring,spring-boot,spring-mvc,Java,Spring,Spring Boot,Spring Mvc,我做了一些测试,测试将资源放入端点。我们支持使用路径扩展来确定请求的内容类型。路径中不包含文件后缀的测试通过良好;包含后缀的测试以406失败。后缀已在ContentNegotationConfigurer中注册,我已尝试了spring.mvc.pathmatch.使用后缀模式,spring.mvc.pathmatch.使用已注册后缀模式,spring.mvc.contentnegotiation.支持路径扩展,和spring.mvc.contentnegotiation.favor参数无效 所讨

我做了一些测试,测试将资源放入端点。我们支持使用路径扩展来确定请求的内容类型。路径中不包含文件后缀的测试通过良好;包含后缀的测试以406失败。后缀已在ContentNegotationConfigurer中注册,我已尝试了
spring.mvc.pathmatch.使用后缀模式
spring.mvc.pathmatch.使用已注册后缀模式
spring.mvc.contentnegotiation.支持路径扩展
,和
spring.mvc.contentnegotiation.favor参数
无效

所讨论的请求映射接受所有值并生成html、xml和json

调试到
DispatcherServlet
,我注意到在
RequestMappingInfo.getMatchingCondition
中,consumes条件正确匹配,但Products条件返回null。进一步说,我看到ContentNegotiationManager有4种策略,其中一种是
ServletPathExtensionContentNegotiationStrategy
。这个类有一个方法
resolveMediaTypeKey
,它基本上是从注册的媒体类型中查找扩展名。因为我的文件扩展名和媒体类型已注册,所以它会匹配并返回该扩展名的媒体类型(不是html、xml或json),而
ContentNegotationManager
会将该值返回到
ProducesRequestCondition
。此时,将返回的媒体类型与声明的
生成值进行比较。由于返回的值与控制器中任何声明的生成值都不匹配,因此条件失败

这对我来说似乎有问题。该行为似乎意味着,如果您将/POST/where资源放入控制器,并且它使用文件后缀来确定请求的内容类型,那么在尝试确定处理程序映射时,它也会尝试强制将其作为返回类型,但事实并非如此

这在SpringBoot2.1.x中不是问题。好奇这是否是一个合法的问题,或者我是否遗漏了什么