У цьому може допомогти структура файлів Maven
По суті , файли конфігурація Spring (які можуть мати будь-яке ім'я, до речі, не тільки родової applicationContext.xml
) розглядаються як ресурси і шляхи до класам рубрик src/main/resources
. Під час процесу збирання вони копіюються в WEB-INF/classes
каталог, який є нормальним місцем для цих файлів.
Варіації включають додатковий spring
каталог (наприклад src/main/resources/spring
) для відділення весняних контекстів від інших ресурсів, присвячених рамкам програми. Ви можете розділити контексти програми на виділені шари, такі як:
example-servlet.xml
example-data.xml
example-security.xml
і так далі.
Що щодо різних середовищ, таких як розробник / тест / виробництво?
Як правило, ваша конфігурація Spring повинна підбирати конфігурацію середовища з її, ах, середовища. Зазвичай це означає використання JNDI, JDBC, змінних середовища або файлів зовнішніх властивостей для забезпечення необхідної конфігурації. Я перелічую їх у порядку переваги, оскільки JNDI, як правило, легше адмініструвати, ніж файли зовнішніх властивостей у керованому виробничому кластері.
У разі тестування інтеграції вам може знадобитися використовувати "тестовий" весняний файл конфігурації. Це буде містити спеціальні контексти, які використовують тестові боби або конфігурацію. Вони можуть бути присутніми в src / test / ресурси і можуть мати test-
префікс, щоб переконатися, що розробники знають про їх призначення. Типовим використанням буде надання джерела даних без JNDI, можливо, орієнтованого на базу даних HSQLDB під час автоматизованих тестів побудови, на яке посилається в тестовому випадку.
Однак, як правило, більшість файлів контексту Spring не повинні потребувати спеціалізованих модифікацій під час переміщення між рівнями. Має бути так, що той самий артефакт збірки (наприклад, файл WAR) використовується у розробці / тесті / виробництві лише з різними обліковими даними.