Как изменить методы обслуживания, которые просто пересылают запрос в DAO? - PullRequest
0 голосов
/ 26 июня 2019

У меня есть проект Spring mvc, на уровне сервисов достаточно много кода, который просто перенаправляет запрос на уровень DAO, как в этом примере.

https://www.journaldev.com/3531/spring-mvc-hibernate-mysql-integration-crud-example-tutorial

    @Override
    @Transactional
    public void updatePerson(Person p) {
        this.personDAO.updatePerson(p);
    }

    @Override
    @Transactional
    public List<Person> listPersons() {
        return this.personDAO.listPersons();
    }

И, согласно Философии разработки программного обеспечения , это нехорошо.

Так что же лучше для рефакторинга уровня обслуживания и уровня DAO?

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

@ Транзакционная область лучше находиться только в дао-слое. В сервисном слое вы можете выполнять предварительную и последующую обработку и преобразование данных.

0 голосов
/ 26 июня 2019

Это не плохая практика, а "разделение интересов".

Сервисный уровень является границей транзакции, отвечает за преобразование данных (например, объект в json) и обычно также заботится о безопасности.

С другой стороны, уровень доступа DAO отвечает за доступ к данным.

Преимущество разделения этих двух уровней заключается в возможности тестирования.Вы можете проверить их самостоятельно.

...