Какова наилучшая практика для структурирования пакета проекта Spring? - PullRequest
0 голосов
/ 05 июля 2019

У меня есть весенний облачный проект, и на каждый микросервис я думаю, что у меня много пакетов. Также у меня есть пакет с моделью, который содержит сущности и объекты ответа на пользовательский запрос.

вопрос 1: каким должно быть имя пакета классов сущностей? сущность или модель?

вопрос 2: где следует сохранять классы Searchrequest & Searchresponse и другие ответы на запросы? в модельном пакете или я должен создать другой пакет?

вопрос 3: выходит ли какой-нибудь стандарт для структурирования пакетов? (пожалуйста, дайте мне ссылку)

enter image description here

Ответы [ 4 ]

2 голосов
/ 05 июля 2019
  1. Имя пакета для таблицы базы данных должно быть сущностью.

    И вот почему?

  2. для Q2и Q3 Структура упаковки

Надеюсь, это поможет, дайте мне знать:)

2 голосов
/ 05 июля 2019

Нет конкретной стандартной структуры, она будет варьироваться в зависимости от ваших потребностей.

  1. Классы сущностей должны быть в доменном пакете, который не должен быть добавляется с именем класса. Это может быть как Book.class, School.class и т.д ..,
  2. Поиск запроса и ответа является классом запроса и ответа, Это должен прийти под пакетом контроллера. Это все конец службы точек.
  3. проверьте ссылку

В основном пакет SERVICE будет иметь все классы обслуживания, которые имеют бизнес-логику, и для связи с классами DAO, Controller будет иметь все остальные конечные точки, пакет Model будет содержать классы pojo.

1 голос
/ 05 июля 2019

Создание пакета бесплатное, поэтому не беспокойтесь о создании большого количества пакетов.Цель создания пакетов - организовать ваш код и разграничить некоторые обязанности или контексты.

вопрос 1: каким должно быть имя пакета классов сущностей?объект или модель?

Вам необходимо понять разницу между этими двумя, прежде чем выбрать лучшее имя:

Объект модели представляет данные вШаблон MVC (Model View Controller).Объектный объект представляет данные в шаблоне ORM (Object Relational Mapping).Они могут быть одним и тем же объектом.Или нет.

Итак, вы можете использовать сущность как класс модели, даже если я понимаю, что это плохая практика.Если это ваш случай, возможно, вы предпочитаете использовать model в качестве имени пакета.Если нет, то entity является правильным выбором.

вопрос 2: где необходимо сохранить Searchrequest & Searchresponse и другие классы ответа на запрос?в модели пакета или я должен создать другой пакет?

Эти классы очень коррелируют с пакетом контроллера.Итак, вы можете создать эти два пакета и поместить туда запрос и ответ, каждый в своем пакете:

controller.response
controller.request

вопрос 3: выходит какой-нибудь Стандарт для структурирования пакета?(пожалуйста, дайте мне ссылку)

См. этот ответ: Существуют ли передовые практики для организации пакетов (Java)?

1 голос
/ 05 июля 2019

Здесь нет строгих правил.Вы должны использовать наименование, которое говорит само за себя (не нужно копаться в содержании классов, чтобы понять его значение).Это подходит для микро-сервисов, веб-приложений, пакетных и любых приложений.

Я думаю, что у меня много пакетов

Основная роль пакетов - сортировать вещи понятным для человека способом.
Например, если у вас 2 или 3Классы по пакетам, вы можете задаться вопросом об их релевантности.
Точно так же, если у вас есть 50 классов в пакете, вы также можете поинтересоваться, не следует ли разделить их на подпакеты.
Обратите внимание, что пакет также играет рольс точки зрения доступности: действительно, уровень доступа package private позволяет установить / уменьшить доступность класса или члена класса к классам текущего пакета.Это также может быть очень полезно с точки зрения дизайна и изоляции.

О ваших 3 вопросах:

вопрос 1: каким должно быть имя пакета классов сущностей?сущность или модель?

В Java entity обычно относится к сущности JPA (в целом в проекте Spring).В то время как model относится к более общей концепции, которая включает entity, но не только, поскольку модель данных также может быть объектами DTO и любой специализацией данных вашей модели.
Если вы используете один слой объектов данных (Объекты JPA, которые также используются в качестве представления JSON), использование термина model имеет смысл.Если вы используете несколько уровней абстракции, пакет по уровням абстракции имеет больше смысла.

вопрос 2: где необходимо сохранить Searchrequest & Searchresponse и другие классы ответа на запрос?в модели пакета или я должен создать другой пакет?

Если эти объекты проходят через каждый слой: в model, в противном случае, вероятно, в другом месте.

вопрос 3: выходит ли какой-нибудь стандарт для структурирования пакетов?(пожалуйста, дайте мне ссылку)

3) Не совсем, но, как правило, это должно быть само собой разумеющимся, очень понятным и разделенным командой проектов для обеспечения согласованности между проектами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...