В настоящее время мы пишем приложение, которое разбивается на несколько проектов/модулей. Например, допустим следующие модули:
- MYAPP-DAO
- MYAPP-трескотня
Каждый модуль имеет свой собственный XML файл Spring. Для модуля DAO у меня есть PropertyPlaceholderConfigurer, который считывает файл свойств с необходимыми параметрами соединения db. В модуле jabber у меня также есть PropertyPlaceHolderConfigurer для свойств соединения jabber.
Теперь идет основное приложение, которое включает myApp-DAO и myApp-jabber. Он считывает все файлы контекста и запускает один большой контекст Spring. К сожалению, похоже, что для каждого контекста может быть только один PropertyPlaceholderConfigurer, поэтому, в зависимости от того, какой модуль загружается, он может прочитать его параметры соединения. Другая генерирует исключение с ошибкой типа "Не удалось разрешить placeholder" jabber.host "
Я понимаю, в чем проблема, но я действительно не знаю решения - или лучшей практики для моего использования.
Как мне настроить каждый модуль, чтобы каждый мог загрузить свой собственный файл свойств? Прямо сейчас я переместил PropertyPlaceHolderConfigurer из отдельных файлов контекста и объединил их в основной контекст приложения (загружая все файлы свойств с помощью одного PropertyPlaceHolderConfigurer). Это отстойно, потому что теперь каждый, кто использует модуль dao, должен знать, что им нужен PropertyPlaceHolderConfigurer в их контексте. Также тесты интеграции в dao-модуле терпят неудачу и т.д.
Мне интересно узнать о решениях/идеях сообщества stackoverflow.