我有很多Spring RestController,其中的方法用RequestMapping
註解。我現在想要在這些RequestMapping
方法中注入一個自定義對象,併爲每個請求創建一個自定義實例。將一個對象的新實例注入到每個請求處理程序中
我想寫點東西像下面這樣:
@RequestMapping("/search")
public SomeReturnObject foobar(@RequestParam("query") String query, MyRequestFoo foo) {
// ...
}
現在我想建立一種機制,在每次調用該方法(即每個請求)獲得創建和注入的MyRequestFoo
一個新實例進入方法。如果使用參數註釋而不是按類型注入會更好,那也可以(例如@MyRequestInject MyRequestFoo foo
)。
我需要知道,如果我現在可以創建特別是對於請求創建的MyRequestFoo
一個新實例的方法,如下所示:
public MyRequestFoo createRequestInstanceSomehow(HttpServletRequest request) {
// extract some values from the HttpServletRequest and create a
// new MyRequestFoo instance from that and return it
}
這是可以通過任何手段來創造這樣一個機制,以便我可以將自定義每個請求對象注入到我的請求處理方法中?
我現在也發佈了一個可行的答案。你能否從你的(或彈簧)角度闡述什麼是更乾淨和「更好」的方法? – 2015-03-25 08:57:55
我已經看到了討論併發布了一個答案,因爲自定義參數解析是一個直接支持您的需求的概念。我會避免爭論什麼更好,但這是我會用的方法。 – 2015-03-25 09:04:22