public class StudentManager {
Map<String, Student> students = new ConcurrentHashMap<String,
Student>();
public synchronized void addStudent(Student student){
if(students.containsKey(student.getId()))
return;
students.put(student.getId(), student);
}
public synchronized void deleteStudent(String id){
if(students.containsKey(id))
students.remove(id);
}
public synchronized void updateStudent(String id,Student student)
{
deleteStudent(id);
if(student.getId()==null || student.getId().equals(""))
student.setId(id);
addStudent(student);
}
public synchronized Student getStudent(String id){
return students.get(id);
}
public synchronized StudentList getStudent() {
StudentList sl = new StudentList();
for(String key : students.keySet())
{
sl.getStudents().add(students.get(key));
}
return sl;
}
}
可以看出,我们将 StudentManager 标记成 component,以便 Spring
能够将这个类的实例注入到使用它的类中(注意,这个类必须是一个单例模
式,因为这个类中维护着学生的集合)。此外,StudentManager 中的所
有 方 法 都 标 记 成 了 同 步 方 法 , 并 且 Map 集 合 也 是 一 个 同 步 集 合 。
StudentManager 提供了对学生集合 Map 的基本操作。