将重复出现的 @RequestParams 移动到 Controller 之前的某处

Move recurring @RequestParams somewhere before Controller

我的 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) {
  // ...
}

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

事实证明这是开箱即用的支持:

@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) {
  // ...
}