将重复出现的@RequestParams移到Controller之前的某个地方。

问题描述 投票:1回答:1

我在我的 RestController遵循一些类似的签名。

@GetMapping
public SomeItem get(@RequestParam String sortBy, 
                    @RequestParam String sortField, 
                    @RequestParam int pageNumber,
                    @RequestParam int pageSize) {
  QueryOptions queryOptions = QueryOptions.of(sortyBy, sortField, pageNumber, pageSize);
  // ...
}

我想知道是否有办法从所有不同的方法中删除这些重复的代码 QueryOptions 前期建设 RestController 方法,这样我就可以使用下面这样的方法。

@GetMapping
public SomeItem get(QueryOptions queryOptions) {
  // ...
}

我该怎么做呢?也许在filterchain中添加一个过滤器?

java spring spring-boot spring-mvc spring-restcontroller
1个回答
1
投票

事实证明,这个是开箱即支持的。

@Getter
@Setter
public class QueryOptions {
  private String pageNumber;
  private String pageSize;
  private String orderBy;
  private String sortField;
}

然后你可以在Controller方法中接受这个Class:

@GetMapping
public SomeItem get(QueryOptions queryOptions) {
  // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.