Spring Data Rest-配置分页


问题内容

在2.1.0版中将Spring Data REST与JPA结合使用。

如何配置分页以使page参数从索引1而不是0开始?

我曾尝试设置自定义HateoasPageableHandlerMethodArgumentResolvermvc:argument- resolvers,但不工作:

<mvc:annotation-driven>
  <mvc:argument-resolvers>
      <bean class="org.springframework.data.web.HateoasPageableHandlerMethodArgumentResolver">
          <property name="oneIndexedParameters" value="true"/>
      </bean>
  </mvc:argument-resolvers>
</mvc:annotation-driven>

请注意,此行为与该文档完全一致mvc:argument-resolver

使用此选项 不会覆盖 对解析处理程序方法参数 的内置支持
。要自定义对参数解析的内置支持,请直接配置RequestMappingHandlerAdapter。

但是我该如何实现呢?如果可能,以一种干净优雅的方式?


问题答案:

这样做的最简单方法是子类化RepositoryRestMvcConfiguration并将类包含在配置中:

class CustomRestMvcConfiguration extends RepositoryRestMvcConfiguration {

  @Override
  @Bean
  public HateoasPageableHandlerMethodArgumentResolver pageableResolver() {

    HateoasPageableHandlerMethodArgumentResolver resolver = super.pageableResolver();
    resolver.setOneIndexedParameters(true);
    return resolver;
  }
}

在您的XML配置中,替换为:

<bean class="….RepositoryRestMvcConfiguration" />

<bean class="….CustomRestMvcConfiguration" />

或在JavaConfig文件中导入自定义类而不是标准类。