Возможно, есть какой-то обходной путь, но это не так очевидно, потому что это не так, как должно быть.Spring MVC предназначен для использования одноэлементных @Controller
bean-компонентов, предоставляющих @RequestMapping
методы, которые принимают запрос и ответ в качестве аргументов.
Если вам нужен ответ в другом месте (уровень обслуживания) - не делайтеЭто.Ответ не должен выходить за пределы веб-уровня (контроллера).
Чтобы ввести ответ, вам необходимо: - сохранить ответ в ThreadLocal
- создать фабричный компонент, который возвращает текущий ответ
About пример кода, который вы показали- Я не уверен, что вам не понадобится фабричный компонент для возврата прокси (реализующий HttpServletResponse
), который в свою очередь возвращает текущий ответ.И это становится довольно сложным.
Но в конечном итоге - вы не должны этого делать.Если вам нужно перехватить несколько вызовов контроллера, используйте mvc-перехватчик.Если вам действительно нужно использовать аспект, вы можете получить ответ, если он передан в качестве аргумента перехваченному методу.