私は春のWebアプリケーションの一部について、私が正確に理解していない短い説明が必要です。春休みコントローラでモデルをインスタンシエート
私はStudentController
の単純なmvcスプリングウェブアプリを持っています。データの場合、StudentDataModelStub
はIStudentDataModel
インターフェースウィッチを実装しており、のStudentDataModelStub
クラスに格納されたデータを扱うための単純な関数をいくつか持っています。 StudentController
クラスで
私はStudentDataModelStub
をインスタンス化していないため、期待されている私はNullPointerException
を得る@Autowired
注釈を削除すると、私は
@Autowired private IStudentDataModel model;
を持っています。しかし、どのクラスが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