过滤 Jersey 中的资源,类似于 Spring 的 @RequestMapping "Params" 属性
Filtering a resource in Jersey similar to @RequestMapping "Params" attribute of Spring
我正在将我所有的 Spring 服务转换为 Jersey,这时我遇到了一个关于如何转换 RequestParam 的 params 特性的问题 Spring到泽西岛?
@RequestMapping(value = "/earnings", params = "type=csv")
Spring:
@RequestMapping(value = "/earnings", params = "type=csv")
public void earningsCSV() {}
@RequestMapping(value = "/earnings", params = "type=excel")
public void earningsExcel() {}
@RequestMapping("/earnings")
public void earningsSimple() {}
泽西岛:
@Path("/earnings")
public void earningsCSV() {}
@Path("/earnings")
public void earningsExcel() {}
@RequestMapping("/earnings")
public void earningsSimple() {}
如何在 Jersey 中指定类型 "csv/excel"?
Jersey 是否支持基于参数的过滤请求?
如果没有,有什么办法可以实现吗?
我在考虑一个过滤器来处理它们并重定向请求,但我有将近 70 多个服务需要以这种方式解决。
所以我最终不得不为所有这些编写一个过滤器。此外,这听起来不像是一种干净的方法。
如有任何建议,我们将不胜感激。
提前致谢。
Jersey 中没有配置来定义它,这是在 spring 中完成的方式。
我通过创建一个父服务来解决这个问题,它接受调用并根据参数将调用重定向到相应的服务。
@Path("/earnings")
public void earningsParent(@QueryParam("type") final String type) {
if("csv".equals(type))
return earningsCSV();
else if("excel".equals(type))
return earningsExcel();
else
return earningsSimple();
}
public void earningsCSV() {}
public void earningsExcel() {}
public void earningsSimple() {}
我觉得这种方法比 Filter 更好,因为它不需要开发人员在将来需要扩展时更改 Filter。
我正在将我所有的 Spring 服务转换为 Jersey,这时我遇到了一个关于如何转换 RequestParam 的 params 特性的问题 Spring到泽西岛?
@RequestMapping(value = "/earnings", params = "type=csv")
Spring:
@RequestMapping(value = "/earnings", params = "type=csv")
public void earningsCSV() {}
@RequestMapping(value = "/earnings", params = "type=excel")
public void earningsExcel() {}
@RequestMapping("/earnings")
public void earningsSimple() {}
泽西岛:
@Path("/earnings")
public void earningsCSV() {}
@Path("/earnings")
public void earningsExcel() {}
@RequestMapping("/earnings")
public void earningsSimple() {}
如何在 Jersey 中指定类型 "csv/excel"? Jersey 是否支持基于参数的过滤请求?
如果没有,有什么办法可以实现吗? 我在考虑一个过滤器来处理它们并重定向请求,但我有将近 70 多个服务需要以这种方式解决。 所以我最终不得不为所有这些编写一个过滤器。此外,这听起来不像是一种干净的方法。
如有任何建议,我们将不胜感激。 提前致谢。
Jersey 中没有配置来定义它,这是在 spring 中完成的方式。
我通过创建一个父服务来解决这个问题,它接受调用并根据参数将调用重定向到相应的服务。
@Path("/earnings")
public void earningsParent(@QueryParam("type") final String type) {
if("csv".equals(type))
return earningsCSV();
else if("excel".equals(type))
return earningsExcel();
else
return earningsSimple();
}
public void earningsCSV() {}
public void earningsExcel() {}
public void earningsSimple() {}
我觉得这种方法比 Filter 更好,因为它不需要开发人员在将来需要扩展时更改 Filter。