У меня есть приложение с пружинной загрузкой с генератором кода чванства. Поскольку контроллеры автоматически генерируются из swagger yaml, я не думаю, что могу изменить контроллеры для доступа к HttpServletResponse.
Есть ли способ получить доступ к HttpServletResponse из класса, помеченного @Component?
Я пытаюсь получить доступ к экземпляру HttpServletResponse, чтобы установить файл cookie.




Если вы вообще не хотите прикасаться к контроллеру, было бы сделать ваш bean-компонент spring filter bean-компонентом. В этой статье подробно рассказывается, как объявить такой компонент. После объявления вам необходимо привязать его к URL-адресу, указывающему на метод вашего контроллера.
https://www.baeldung.com/spring-boot-add-filter
Это зависит от того, какова ваша конечная цель.
Фильтр или перехватчик - это то, что вам нужно. дать доступ к запросу и ответу
@mavriksc точно :)
Spring предоставляет статический класс (ServletRequestAttributes), который вы можете использовать для доступа к запросу / ответу из любого места в приложении:
public void method() {
ServletRequestAttributes ra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (ra != null) {
HttpServletRequest request = ra.getRequest();
HttpServletResponse response = ra.getResponse();
}
}
ra.getRequest() will return null if request has already been processed
HttpServletResponse уже введен, вы можете использовать его как параметр в своем методе