Обязанности и использование уровней обслуживания и 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 и затем вызывают его метод?

Ответы на вопрос(2)

Ваш ответ на вопрос