Vla*_*lin 5 java spring spring-mvc spring-data spring-boot
我@EnableSpringDataWebSupport在我的 Spring Boot 应用程序中成功使用来启用分页、排序和其他内容。但是,在某些时候,我不得不引入一个自定义参数解析器,并使用 Java 配置进行如下操作:
@Configuration
@EnableSpringDataWebSupport
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(renamingProcessor());
}
@Bean
protected RenamingProcessor renamingProcessor() {
return new RenamingProcessor(true);
}
}
Run Code Online (Sandbox Code Playgroud)
它使我的新参数解析器工作,但完全破坏了由@EnableSpringDataWebSupport. 我试过切换WebMvcConfigurerAdapter到像DelegatingWebMvcConfigurationor 之类的替代品WebMvcConfigurationSupport,但没有运气——分页失败,但有例外:
无法实例化 [org.springframework.data.domain.Pageable]:指定的类是一个接口
我将不胜感激任何有关如何处理此问题的帮助或建议。类似的问题并没有多大帮助:
因此,经过一番调查,我找到了解决方案(也许不是理想的解决方案,但仍然有效——我仍然很高兴看到 Spring 专业人员针对该问题提供“正确”的解决方案)。我改变的是从 切换extends WebMvcConfigurerAdapter到extends HateoasAwareSpringDataWebConfiguration(因为我们使用的是 HATEOAS)。我还更新了覆盖的内容addArgumentResolvers,现在我的MvcConfig样子如下:
@Configuration
public class MvcConfig extends HateoasAwareSpringDataWebConfiguration {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
super.addArgumentResolvers(argumentResolvers);
argumentResolvers.add(renamingProcessor());
}
@Bean
protected RenamingProcessor renamingProcessor() {
return new RenamingProcessor(true);
}
}
Run Code Online (Sandbox Code Playgroud)
问题Pageable消失了,定制RenamingProcessor就像一个魅力。
希望这个答案能够帮助面临类似问题的人。
| 归档时间: |
|
| 查看次数: |
3228 次 |
| 最近记录: |