Настройка-преобразование приложения Spring в приложение Spring Boot - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть довольно традиционное классическое веб-приложение Spring, которое обслуживает службы RESTful в виде проекта с несколькими модулями.

Есть много отличных веб-сайтов, которые я нашел, и у некоторых есть хорошие примеры.Я могу заставить что-то работать, но это не значит, что это стандартный подход.Итак, причина, по которой я спрашиваю здесь, заключается в том, каким должен быть стандартный Spring Boot для приложения RESTful.Является ли макет, который я использую, довольно нормальным и / или стандартным, или это безумие.Какова стандартная стандартная схема для модуля Multi-Maven Spring Boot.

Позвольте мне изложить это:

parent-maven-project
   pom.xml - repos, properties, modules

   entity-module - translates to JAR, all hibernate entities
       myapp-entity-context.xml - beans for mostly the dbconn/session/trx
       pom.xml - points to parent-maven-project has dependencies

   dao-module - translates to jar, all db CRUD and unit tests
               - imports entity-module.jar
       myapp-dao-context.xml
          this xml imports myapp-entity-context.xml
          also has any other bean definitions needed for this module
       pom.xml - points to parent-maven-project has dependencies

   service-module - translates to jar, contains business logic
                  - imports dao-module.jar
       myapp-service-context.xml
          this xml imports myapp-dao-context.xml
          also has any other bean definitions needed for this module
       pom.xml - points to parent-maven-project has dependencies

  ws-module - translates to war, contains RESTful endpoints
            - imports service-module.jar
       myapp-ws-context.xml
          this xml imports myapp-service-context.xml
          also has any other bean definitions needed for this module
       pom.xml - points to parent-maven-project has dependencies
       webapp
           WEB-INF
               spring-security.xml
               springmvc-serlet.xml
               web.xml

Некоторым людям может понравиться то, что я сделал, выделив модули,и увидеть, как WAR тянет service-module.jar, в котором есть dao-module.jar, в котором есть entity-module.jar, а некоторым это может не понравиться.

Вы можете увидеть «myapp-ws-context.xml импортировал «myapp-service-context.xml», который, в свою очередь, импортировал «myapp-dao-context.xml», который, в свою очередь, импортировал первый «myapp-entity-context.xml».Кому-то это может понравиться, а кому-то может показаться, что это мерзость.

Я скажу, что в таком порядке, если я скомпилирую свои модули:
entity, dao, service, ws затем всеправильно компилируется, все модульные тесты работают правильно, и приложение работает отлично!Это система, которую я разрабатывал на протяжении многих лет, и она очень похожа на любые приложения Spring, которые я вижу сейчас.

Учитывая все это, я смотрю на «стандартный» способсоздание многопользовательского модуля Spring Boot app.Итак, вот что я знаю, и вот что у меня есть вопросы:

1) Я знаю, что все файлы myapp-xxx-context.xml должны быть преобразованы в классы Java Config

2) Я думаю, что spring-secutity.xml, web.xml и springmvc-servlet также могут быть преобразованы в классы Java Config ?????Насколько я знаю, эти три xml-файла можно поместить в один класс Java Config.

Общая причина для модулей состоит в том, что я действительно хочу инкапсулировать то, что мне нужно для этих модулей, в зависимости pom.xml, ив контекстных файлах приложения Spring.

Вот макет, который, как мне кажется, мне понадобится.

parent-maven-project
   pom.xml - repos, properties, modules
           - parent is spring boot start project 

   app-module - Beginning Spring Boot App, translates to jar
        pom.xml - points to parent-maven-project has dependencies
        src/main/java/com/myapp/AppConfiguration.java

   entity-module - translates to JAR, all hibernate entities
       pom.xml - points to parent-maven-project has dependencies
       src/main/java/com/myapp/EntityConfiguration.java
              - @Import AppConfiguration.java


   dao-module - translates to jar, all db CRUD and unit tests
               - imports entity-module.jar
       pom.xml - points to parent-maven-project has dependencies
       src/main/java/com/myapp/DaoConfiguration.java
              - @Import EntityConfiguration.java

   service-module - translates to jar, contains business logic
                  - imports dao-module.jar
       pom.xml - points to parent-maven-project has dependencies
       src/main/java/com/myapp/ServiceConfiguration.java
              - @Import DaoConfiguration.java

  ws-module - translates to war, contains RESTful endpoints
            - imports service-module.jar
       pom.xml - points to parent-maven-project has dependencies
       src/main/java/com/myapp/WebServiceConfiguration.java
              - @Import ServiceConfiguration.java
              - web.xml, spring-security.xml,  and springmvc-servlet.mvc are pulled into this 'WebServiceConfiguration' java class.

С этим макетом модули настраиваются в следующем порядке: приложение, объект, дао, сервис, ws

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

Он имеет следующие настройки модулей: entity, dao, service, ws и app

В этом случае модуль приложения представляет собой «FAT JAR», который имеет основной класс Spring Boot Application.Затем pom.xml включает в себя: entity, dao, service, ws.В его случае дао включает сущности.Сервисы не включают dao, и ws не включает сервисы.

Что кто-нибудь из этого макета?

Спасибо!

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