【发布时间】:2012-01-17 16:01:39
【问题描述】:
我有一个请求范围的 bean,我需要访问 HttpServletResponse 和 HttpServletRequest 对象。
我需要在构造函数中访问这些对象,所以属性自动装配不是一个选项。
我做了以下事情:
@Component
@Scope("request")
public class MyClass{
@Autowired(required=true)
public MyClass(HttpServletRequest request, HttpServletResponse response) {
// do stuff I need to do in the constructor
}
}
这给了我以下错误:
未找到默认构造函数;嵌套异常是 java.lang.NoSuchMethodException: com.foo.bar.MyClass.()
根据这个错误信息,它正在寻找一个不存在的无参数默认构造函数。我自动装配了构造函数并将“必需”设置为 true,因此注入器应该选择这个构造函数。由于 bean 是请求范围,这应该可以工作,但它没有。
有什么想法吗?
【问题讨论】:
标签: spring dependency-injection constructor-injection