Spring Roo Multi Project Обходной путь - PullRequest
0 голосов
/ 21 сентября 2011

Я знаю, что Spring Roo пока не поддерживает мультипроекты, но мне нужно два сайта для работы на одних и тех же моделях / контроллерах (около 50 моделей) и в одной базе данных без необходимости обновления моделей в обоих приложениях.

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

Ответы [ 3 ]

1 голос
/ 21 сентября 2011

Если вы хотите настроить пользовательский интерфейс для разных клиентов для одного и того же продукта, созданного с помощью Spring Roo, вы можете просто достичь вышеуказанного с помощью системы контроля версий.

Просто разветвите ваш основной источник для двух ветвей и продолжайте обновлять ствол и тяните их к ветвям, когда есть изменения в модулях, сохраняя индивидуальные настройки пользовательского интерфейса в ветвях.

Кроме того, вы можете дождаться выпуска Spring Roo 1.2, который уже обещал поддержку многомодульных проектов maven ( ROO-120 ) для проектов Spring Roo.

Ура и всего наилучшего с Roo!

1 голос
/ 21 сентября 2011

В качестве обходного пути я пытаюсь создать отдельные веб-проекты Roo для различных бизнес-логик. Затем я изменяю упаковку в pom.xml, от WAR до JAR, чтобы упаковать их без веб-ресурсов (примечание: поскольку контроллеры являются классами POJO, они включены в JAR)

Я называю их вспомогательными модулями.

Наконец, я создаю веб-проект Roo, импортирующий вспомогательные модули в виде зависимостей maven.

Я называю это основным модулем.

Первая проблема - включить классы вспомогательных модулей в сканирование JPA основного модуля. Мне нужно сделать это, потому что пакеты верхнего уровня отличаются между модулями.

Для этого вам нужно отредактировать файл persistence.xml в основном модуле и добавить записи для каждой внешней сущности JPA (да, 50 при необходимости)

См. http://www.manning -sandbox.com / thread.jspa? ThreadID = 46259 & tstart = 0 для дальнейших объяснений.

Вторая проблема заключается в использовании контроллеров, включенных в JAR. Проблема здесь заключается в ApplicationConversionServiceFactoryBean, вам необходимо скопировать код каждого ApplicationConversionServiceFactoryBean в вспомогательные модули в главном модуле, поскольку webmvc-config.xml создает только один из них.

Это проблема, только если у вас есть сущности с составными ключами, потому что они @Autowired в контроллерах, чтобы вести диалоги ключей для использования их в качестве параметров REST.

Подробнее см. http://www.manning -sandbox.com / thread.jspa? ThreadID = 46337 & tstart = 0 .

Последней проблемой могут быть аспекты JSON, созданные для обмена параметрами REST в вызовах AJAX, как указано выше, если у вас есть составные ключи. Кроме того, если вы пытаетесь использовать JQuery вместо Dojo.

У меня пока нет решения для этого, но конец проекта близок, поэтому я уверен, что что-то поможет.

Кстати, я принимаю предложения.

0 голосов
/ 10 октября 2011

Возможно, есть и другой способ сделать это, используя средства распознавания Spring ... Если вы заинтересованы, вы можете просмотреть мою статью по этому вопросу на http://pragmatikroo.blogspot.com/2011/04/spring-roodynamic-clients-multiple.html.

Этот подход особенно полезен на веб-сайтах с традиционными клиентами пользовательского интерфейса, которым необходимо одновременно поддерживать мобильный клиент.

Надеюсь, это поможет.

B. Roogards Jd

...