我有一个暴露以下端点的控制器:
@RequestMapping("/all-users")
List<User> getAllUsers() {
...
}
我还有一个注释可以帮助我对这些端点进行版本控制,最终结果如下:
@RequestMapping("/all-users")
@Version(version=1, latests=LATEST_ALL_USERS)
List<User> getAllUsers() {
...
}
现在我想向所有处理程序引入一个额外的标准行为,映射的wish方法包含@Version注释,它将简单地将响应对象包装到另一个包含当前版本和最新版本的被调用方法的对象中。构建此对象的一些信息由@PathVariable参数提供。我试图找到一个允许我的钩子但到目前为止没有运气。
我首先尝试使用自定义RequestResponseBodyMethodProcessor
,但如果我添加它将不会产生任何影响,因为原来的RequestResponseBodyMethodProcessor
来了,我不想删除ResponseBody
我的终点。
之后我尝试去映射,一旦我无法在处理器上处理它,也许我可以处理映射时间介绍我的代码pre
和post
方法调用,但是卡住了在注册映射的地方,需要方法对象,不允许我介绍我的建议代码。
有没有办法完成这项工作?
编辑:
构建新返回对象所需的一些信息以@PathVariables的形式提供,并且可以在端点方法调用中使用。