0
在控制器注入HTTP请求头到服务豆,我可以使用下面的代码如何使用弹簧
@RestController
public class MyController {
@RequestMapping(value = "/mypath", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity moveEnrollment(@RequestHeader Map<String, String> headers) {
..invoke business logic
}
}
访问所有@RequestHeader
■如何注入头在Spring的服务Bean上是不是一个控制器?否则,我需要将这个hashmap传遍整个地方。
我知道我可以注入HttpServletRequest
然后获取标题,但如果它可以直接注入,它会更容易。
你实际上可以在任何地方注入HttpServletRequest。如果调用线程是http请求的一部分,那么它实际上就是那个请求实例。但是如果线程不是请求线程,则它为空。 –
我明白你在说什么,但我认为安倍要求的是将它注入服务而不是方法。我解释说请求不是全局bean,而是每个请求。 –
@AminJ你可以注入httpservletrequest对象到spring服务bean中。我猜测这是使用threadlocals完成的。因此,即使httprequest对象是每个请求都是新的,但该bean将为该线程正确注入。问是否我也可以对请求标题也做同样的事情。 – Abe