Обязанности и использование уровней обслуживания и DAO
В настоящее время я занимаюсь разработкой веб-приложения с использованием Struts2 с плагином Spring и hibernate, и, просматривая онлайн-примеры, я увидел использование уровней Service и DAO, и теперь мне пришло в голову, каково реальное использование уровней объектов Service и доступа к данным? Если уровень Service просто вызывает методы уровней DAO для выполнения операций CRUD. Wouldn»Разве разумно просто вызывать методы уровней DAO напрямую?
Позволять'скажем, этот пример Dao и Service Layer
PeopleService
@Transactional
public class PeopleService {
private PeopleDao pDao;
public PeopleDao getPDao() { return pDao; }
public void setPDao(PeopleDao peopleDao) { this.pDao = peopleDao; }
public void createPerson(String name){
pDao.createPerson(name);
}
public List getPeople(){
return pDao.getPeople();
}
}
PeopleDao
public class PeopleDao {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Session sess() {
return sessionFactory.getCurrentSession();
}
public Person getPersonById(long id) {
return (Person) sess().load(Person.class, id);
}
public void deletePersonById(long id) {
sess().delete(getPersonById(id));
}
public void createPerson(String name) {
Person p = new Person();
p.setName(name);
sess().save(p);
}
@SuppressWarnings("unchecked")
public List getPeople() {
return sess().createQuery("from Person").list();
}
}
Мой вопрос заключается в том, каково реальное использование сервисных уровней, если они вводятся только их представительным DAO и затем вызывают его метод?