Можно ли как-то запустить несколько веб-модулей, которые совместно используют один и тот же библиотечный модуль с одним SpringBootApplication? - PullRequest
1 голос
/ 26 апреля 2019

Я запускаю проект Spring, который должен состоять из четырех основных модулей:

  1. Базовый модуль - имеет уровень обслуживания и хранилища (должен представлять общую библиотеку для других модулей)
  2. Модуль администрирования - должен содержать собственную конфигурацию безопасности и конечные точки (контроллеры)
  3. Модуль клиента - должен содержать другую конфигурацию безопасности и контроллеры
  4. ? Веб-модуль - содержит приложение SpringBoot, которое должно запускать как модуль администратора, так и модуль клиента.

Возможно ли это, или я должен разделить проект на два проекта Spring Boot с общей библиотекой? Могу ли я настроить сборку, в которой модули Admin и Customer создаются как файлы .war, и запустить ее с SpringBootApplication в веб-модуле?

Модули Customer и Admin не обязательно должны быть на одном и том же порту. Единственное, что важно, это запустить его одновременно.

Ниже приведена структура моего текущего проекта.

/project-root
   -pom.xml (pom packaging defined; modules: core, web-admin, web-customer)
   /core 
     -src (contains service and repository classes)
     -pom.xml (jar packaging)
   /web-admin
     -src (contains controllers and security configuration for admin portal)
     -pom.xml (jar packaging for now; dependency on core)
   /web-customer
     -src (contains controllers and security configuration for customers)
     -pom.xml (jar for now; dependency on core)
   /web
     -src (should contain SpringBootApplication to run all the modules)

1 Ответ

1 голос
/ 26 апреля 2019

Конечно, это возможно.Вам просто нужно обратить внимание на пару вещей:

  1. Ваш веб-модуль должен включать все остальные модули в качестве зависимостей;
  2. Класс SpringBootApplication должен находиться на верхнем уровнепакет, в противном случае вам придется немного поиграть с атрибутом baseScanPackages;

Например:

   /core 
     com.example.app.core      <--- All the core classes would be on this package
   /web-admin
     com.example.app.admin     <--- All the admin classes would be on this package
   /web-customer
     com.example.app.customer  <--- All the customer classes would be on this package
   /web
     com.example.app           <--- The SpringBootApplication class should be at this level

Можно ли настроить сборку, в которой модули Admin и Customer создаются как файлы .war, и запускать ее с SpringBootApplication в веб-модуле?

Вам не нужно упаковывать модуль администратора и клиента как файлы war, упаковка jar идеально.

Модули клиента и администратора не обязательно должны быть натот же порт.

Это жесткое требование?Если да, то вам лучше написать 2 разных приложения.В противном случае все API могут быть доступны через один и тот же порт.

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