Responsibilities and use of Service and DAO Layers 服务层和DAO层的职责和使用
Responsibilities and use of Service and DAO Layers 服务层和DAO层的职责和使用
我目前在使用Struts2与Spring插件和Hibernate开发一个Web应用程序,当我查看在线示例时,我看到了使用Service和DAO层的用法,现在我想知道Service和数据访问对象层的真正用途是什么?如果Service层只是调用DAO层的方法来执行CRUD操作,直接调用DAO层的方法不是更合理吗?
让我们以Dao和Service层的示例为例
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 ListgetPeople(){ 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 ListgetPeople() { return sess().createQuery("from Person").list(); } }
我的问题是,如果Service层只是被代表DAO注入并调用其方法,那么Service层的真正用途是什么?