У меня есть множество Spring RestControllers с методами, аннотированными 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
}
Возможно ли это каким-либо образом, чтобы создать такой механизм, так что я могу добавлять пользовательские объекты запроса в мои методы обработки запросов?
Я также написал ответ, который работает. Могли бы вы, возможно, разработать более чистый и «лучший» подход с точки зрения (или источников)? –
Я видел дискуссию и отправил ответ в любом случае в качестве альтернативы, потому что разрешение пользовательских аргументов - это концепция, непосредственно поддерживающая ваше требование. Я бы отказался от обсуждения того, что лучше, но это тот подход, который я бы использовал. –