Конфигурация Spring в многомодульном проекте - PullRequest
11 голосов
/ 20 января 2012

Я новичок в Spring и получил ситуацию, когда один проект с несколькими модулями, включая один веб-модуль.Веб-модуль использует Spring MVC, но мне было интересно, могу ли я иметь основную конфигурацию Spring на уровне проекта, которая бы отвечала за весь проект, чтобы я мог воспользоваться всеми преимуществами Spring Framework.лучшая настройка для этого случая?

Ответы [ 2 ]

8 голосов
/ 20 января 2012

У нас есть такая архитектура, где я работаю. Мы решили использовать ContextLoaderListener (Spring Event Listener) в веб-модуле.

Затем в serverApplicationContext.xml мы импортируем все файлы контекста модулей:

<import resource="classpath*:module1ApplicationContext.xml" />
<import resource="classpath*:module2ApplicationContext.xml" />
...

Таким образом, вы используете весеннюю загрузку контекста при инициализации контекста веб-приложения.

6 голосов
/ 20 января 2012

Макет сборки и время выполнения CLASSPATH - это две разные вещи.Даже если вы определите отдельные applicationContext.xml файлы или @Configuration классы в разных модулях, они могут объединиться в один CLASSPATH.

При этом module1 и module2 могутобъявлять свои собственные контексты, но поскольку CLASSPATH объединяется во время выполнения, будет создан только один основной контекст.Также, если вы решите использовать сканирование CLASSPATH в одном модуле, оно может забирать классы (bean), помеченные @Service в других модулях.

В модуле web, который также должен иметь зависимости от ядра Springбиблиотеки, также будут зависеть от spring-web, MVC и spring-security.Этот модуль создаст дочерний web контекст, который имеет доступ к основному контексту, но не наоборот.

Очевидно, у вас должна быть только одна копия каждой библиотеки в вашем Uber-JAR (ear?)

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