2014-09-18 3 views
1

Я хочу разбить большое веб-приложение на разные разделы. В моем случае есть интернет-магазин, служба api, а затем основное приложение.Сплит весеннее загрузочное приложение в несколько веб-приложений

и все они должны совместно использовать слой домена.

Я пытаюсь воспроизвести схему уха без использования корпоративного сервера, поэтому основное приложение будет войной с банком общего домена, а приложение администратора будет иметь contextPath/admin, а также использовать один и тот же домен. баночка.

С самого начала они будут развернуты вместе, но по мере роста приложения я просто начну развертывать приложения на своих собственных портах и ​​использовать nginx для их склеивания.

Я реализовал большую часть этого демо-репортажа github.

https://github.com/leon/springboot-multiproject

Мой вопрос: Как я могу отобразить приложение администратора в подкаталог основного приложения?

/администратор < - Администратор приложение

/< - Главное приложение

и нужно ли мне принимать какие-либо особые соображения, когда речь идет о доменном слое?

См https://github.com/leon/springboot-multiproject/blob/master/src/main/java/se/radley/main/Application.java#L23

+0

Если я правильно понимаю, приложение администратора и основное приложение не будут частью одной и той же банки (или войны, если вы не используете встроенный tomcat). Это верно? Собираетесь ли вы развернуть отдельно? – geoand

+0

Я пытаюсь воспроизвести схему уха без использования корпоративного сервера, поэтому основное приложение будет войной с банком общего домена, а приложение администратора будет иметь contextPath или/admin, а также совместно использовать тот же domain.jar. С самого начала они будут развернуты вместе, но по мере того, как приложение растет, я просто начну развертывать приложения на своих собственных портах и ​​использовать nginx для их склеивания. Надеюсь, что это имеет смысл? –

+0

Спасибо за разъяснение. Вероятно, вы должны обновить вопрос с этой информацией. – geoand

ответ

0

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

У меня возникло бы искушение сохранить вещи просто изначально. Вы можете создать отдельные банки для своих «главных» и «админ» @Controllers, один для вашего домена и сохранить конфигурационную панель приложения. Сканирование компонентов будет работать с вложенными банками, поэтому один DispatcherServlet может с радостью обслуживать как контроллеры, так и /.

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

+0

В игровой среде вы можете разделить маршруты, используя/admin <- admin.Routes.Есть ли что-то подобное весной, поэтому мне не нужно префикс всех моих админ-контроллеров с помощью/admin? –

+0

Вы можете добавить '@ RequestMapping' на уровне класса и уровне метода. –

+0

Скажем, я уже скомпилировал банку с некоторой функциональностью (пару контроллеров), и я хочу импортировать их в другой проект, тогда мне нужно будет перекомпилировать банку и изменить RequestMapping для этих контроллеров. Это не кажется оптимальным –