我只需要对我的弹簧web应用的一部分进行简短的解释,但我并不完全明白。在弹簧休息控制器中的实例化模型
我有一个简单的mvc弹簧web应用程序StudentController
。对于数据我有一个类StudentDataModelStub
,实现IStudentDataModel
接口女巫有一些简单的功能,用于存储List
StudentDataModelStub
类中的数据。
在StudentController
类我有
@Autowired private IStudentDataModel model;
当我删除@Autowired
注释我得到NullPointerException
预计,因为我不实例StudentDataModelStub
。但是弹簧如何知道哪个类实例化了IStudentDataModel
,因为多个类可以实现接口IStudentDataModel
,并且为什么model
必须是@Autowired
?
这是StudentDataModelStub
类的一部分。
public class StudentDataModelStub implements IStudentDataModel {
private final Map<Integer, Student> data = new HashMap<>();
@Override
public List<Student> getStudents() {
// TODO Auto-generated method stub
return new ArrayList<>(data.values());
}
@Override
public Student getStudent(int id) throws IdNotFoundException {
// TODO Auto-generated method stub
if(!data.containsKey(id)){
throw new IdNotFoundException("...");
}
return data.get(id);
}
你可以添加'StudentDataModelStub'的代码吗? – developer