を使用してサービスBeanにHTTPリクエストヘッダを注入するか、私はどのスプリングサービスBeanにヘッダを注入するにはどうすればよい次のコードがどのようにコントローラにスプリング
@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
Sにアクセスすることができではないコントローラですか?そうでなければ、私はこのハッシュマップをどこかで渡す必要があります。
私はHttpServletRequest
を注入してからヘッダーを取得できることを知っていますが、直接注入できるのは簡単でしょう。
実際にHttpServletRequestをどこにでも注入できます。呼び出し元のスレッドがHTTP要求の一部である場合、実際にその要求インスタンス。しかし、スレッドが要求スレッドでない場合はnullです。 –
あなたの言っていることを理解していますが、私は、安倍氏が求めていることは、方法ではなくサービスにそれを注入することだと思います。リクエストはグローバルBeanではなく、リクエストごとであることを説明していました。 –
@AminJ httpservletrequestオブジェクトをSpringサービスBeanに挿入できます。私はそう思ってthreadlocalsを使用して行われます。したがって、リクエストごとにhttprequestオブジェクトが新しくても、Beanはそのスレッドに対して正しく注入されます。 qはリクエストヘッダーに対しても同じことができるかどうかでした。 – Abe