You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
На любом уровне можно добавить пакеты platform и infra.
587
587
588
+
==== Пакеты platform
589
+
588
590
Пакеты platform содержат:
589
-
. определение верхнеуровневых функций (статических методов) и короткоживущих объектов, которые используются в нескольких элементах родительского пакета.
590
-
Например, в подпакете myapp.app.users.platform может быть класс ДТО, который используется в нескольких контроллерах пакета app.users.
591
-
Или в подпакете myapp.domain.users.platform может быть функция-утилита, которая используется в нескольких моделях/командах/запросах пакета myapp.domain.users.
592
-
Или в пакете myapp.platform.spring.jdbc могут быть функции-утилиты для класса JdbcClient, которые используются в разных пакетах ресурсов (в myapp.domain.*);
593
-
. Определение классов компонентов для которых во время выполнения создаётся несколько экземпляров.
594
-
Например, это может быть компонент `FileStorage(name)`, который является деталью реализации нескольких ресурсов и, соответственно, каждый из которых используюет собственный экземпляр - `UsersRepo(usersDao, usersFileStorage)`, `ExercisesRepo(exercisesDao, exercisesFileStorage)`.
595
-
596
-
Пакеты infra содержат:
597
-
. определения управляемых DI-контейнером долгоживущие объекты, которые создают другие компоненты системы и или объекты их конфигурации, которые используются в нескольких элементах родительского пакета или инфраструктурой.
598
-
Например, в подпакете myapp.app.infra может быть определена Spring-конфигурация SecurityConf, задающая настройки авторизации всего приложения.
599
-
Или в подпакете myapp.domain.infra может быть определена Spring-конфигурация DataSourceConf, содержащая Spring-бин DataSource для всех ресурсов.
600
-
Или в подпакете myapp.infra может быть определена Spring-конфигурация CacheConf, создающая CacheManager, используемый в пакетах myapp.app и myapp.domain.
591
+
592
+
* определение верхнеуровневых функций (статических методов) и короткоживущих объектов, которые используются в нескольких элементах родительского пакета.
593
+
** Например, в пакете `myapp.app.users.platform` может быть класс ДТО, который используется в нескольких контроллерах пакета `app.users`.
594
+
** Или в пакете `myapp.domain.users.platform` может быть функция-утилита, которая используется в нескольких моделях/командах/запросах пакета `myapp.domain`.users.
595
+
** Или в пакете `myapp.platform.spring.jdbc` могут быть функции-утилиты для класса JdbcClient, которые используются в разных пакетах ресурсов (в `myapp.domain.*`);
596
+
* Определение классов компонентов для которых во время выполнения создаётся несколько экземпляров.
597
+
** Например, это может быть компонент `FileStorage(name)`, который является деталью реализации нескольких ресурсов и, соответственно, каждый из которых используюет собственный экземпляр - `UsersRepo(usersDao, usersFileStorage)`, `ExercisesRepo(exercisesDao, exercisesFileStorage)`.
598
+
599
+
==== Пакеты infra
600
+
601
+
Пакеты infra содержат фабрики (как декларативные, так и императивные) инфраструктурных компонентов.
602
+
603
+
Например, в пакете `myapp.app.infra` может быть определена Spring-конфигурация `SecurityConf`, задающая настройки авторизации всего приложения.
604
+
Или в пакете `myapp.domain.infra` может быть определена Spring-конфигурация `DataSourceConf`, содержащая Spring-бин `DataSource` для всех ресурсов.
605
+
Или в пакете `myapp.infra` может быть определена Spring-конфигурация `CacheConf`, создающая `CacheManager`, используемый в пакетах `myapp.app` и `myapp.domain``.
606
+
601
607
602
608
В своём проекте вы можете выбрать другие стандартные имена или вообще выбирать подходящие имена в каждом конкретном случае.
0 commit comments