У меня есть объект с привязкой к запросу, и мне нужно иметь доступ к объектам HttpServletResponse и HttpServletRequest.Как создать конструктор-autowire HttpServletResponse весной 3.1?
Мне нужен доступ к этим объектам в конструкторе, поэтому автоустановка свойств не является вариантом.
я сделал следующее:
@Component
@Scope("request")
public class MyClass{
@Autowired(required=true)
public MyClass(HttpServletRequest request, HttpServletResponse response) {
// do stuff I need to do in the constructor
}
}
Это дает мне следующее сообщение об ошибке:
No default constructor found; nested exception is java.lang.NoSuchMethodException: com.foo.bar.MyClass.()
В соответствии с этим сообщением об ошибке, он ищет конструктор paramless по умолчанию, который не существует. Я автоувеличил конструктор и специально установил «required» в true, поэтому инжектор должен выбрать этот конструктор. Поскольку bean - область запроса, это должно работать, но это не так.
Любые идеи?
Спасибо. Обычное решение кажется немного хакерским, поэтому я переписал свою логику, чтобы поместить функцию bean в HandlerInterceptor, где по умолчанию эти 2 объекта доступны по умолчанию. – GeorgeStone
И если я делаю портлет, то PortletRequest доступен для autowiring? – rascio