2016-08-01 52 views
0

我有一个使用Spring实现的REST服务。对于一些请求,我想从客户端传输一些额外的数据,例如时间戳和用户名(也可能是其他内容)以保留某些操作日志。什么是最好和正确的方法来实现这一目标?REST:用一些请求发送附加用户数据

很明显,我可以将这些数据作为请求参数或消息体传递,但它可能是错误的,并会强制我更新适当的控制器 - 有没有更好的方法?

回答

0

我不确定您是否不想更改控制器的方法签名,但是如果您只是将HttpServletRequest添加到控制器的参数中,Spring将自动注入此对象。它配备了您正在寻找的,包括日期/时间标记,用户名中的所有元数据等

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html

+0

我想同样的事情,但我不知道它是否值得注入的请求。我只希望有更优雅的方法。但仍然,感谢您的回复 – underscore

+0

请查看HandlerInterceptorAdaptor的示例。它将处理诸如http请求的审计/访问日志记录之类的横切关注点 https://www.mkyong.com/spring-mvc/spring-mvc-handler-interceptors-example/ 这是一个老例子,但拦截器仍然在那里 –