【发布时间】:2023-03-29 22:30:01
【问题描述】:
我需要从Spring Boot RESTful API 的服务层访问存储在HttpServletRequest 的请求标头。这样做的原因是我需要访问 x-forwarded-for 标头来获取任何接收到的请求的原始 IP 地址。
首先,我认为实现这一目标的最简单方法是在需要此信息的服务处@Autowire HttpServeletRequest,但深入思考这一点,我发现这不是一个好习惯,因为我混合层。
另一种选择是通过参数将我需要的信息从标头传递给需要此信息的服务方法。
我确信有更好更简洁的方法来实现这一点,但经过搜索后,我没有更好的方法将此信息传递给服务层。
有谁知道将一些请求标头传递给服务层或这些标头包含的信息的最佳做法是什么?
【问题讨论】:
-
恕我直言,最好的解决方案是将我需要的信息从标头通过参数传递给需要此信息的服务方法
-
只需将参数的HttpServletRrquest对象放在你的方法中。
-
为什么不能只将 IP 地址作为字符串参数发送到服务层的方法!正常的
-
保持图层分开。提取RESTful方法中的IP地址,作为参数传递给Service方法。
标签: java rest spring-boot http-headers