#spring #naming-conventions
Вопрос:
В Spring MVC у нас есть 3 основные категории объектов: Controllers
, Services
и Repositories
. Я не могу «классифицировать» объекты, возвращаемые этими тремя категориями. Например, репозитории возвращают Entity
s, но как я могу назвать объекты, возвращаемые службами и контроллерами?
В реальном проекте, который я разрабатываю, у меня есть репозиторий, возвращающий извлечение из таблицы, поэтому я получаю Entities
объекты. В сервисе, где есть логика, мне нужно только вернуть некоторые поля, поэтому мне нужно сопоставить сущности с другой объектной моделью. Позже в контроллере, возможно, мне понадобится представление определенного уровня, например, между «стандартным компьютером» и мобильным, поэтому мне нужен другой тип объекта для отображения результата службы.
Ответ №1:
Каждый слой имеет свой постфикс в названии class
, чтобы кодовая база оставалась чистой и читаемой. В большинстве проектов, над которыми я работал, соглашение об именах является:
Уровень контроллера
POJO, открытый за пределами приложения, например, думал, что API REST-это DTO (Объект передачи данных), поэтому он обычно находится под dto
пакетом, и его имя похоже UserDto
Уровень обслуживания
POJO, который обрабатывает бизнес-логику приложения, называется объектом домена, поэтому он обычно находится под domain
пакетом, а имя похоже User
на без какого-либо постфикса в имени.
Уровень хранилища
POJO, который содержит данные на уровне сохраняемости, называется entity, поэтому он обычно находится под jpa
пакетом, и его имя похоже UserJpa
Комментарии:
1. Спасибо. Так что, похоже, здесь нет никаких условностей, только хорошие привычки.