我只需要對我的彈簧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