2012-06-21 3 views
0

Есть ли способ разместить applicationContext.xml в папку WEB-INF? Я отношусь к папке WEB-INF, потому что знаю, что ее можно поместить в папку WEB-INF \ classes.
В соответствии с требованием Клиенты должны иметь возможность настроить applicationContext.xml в соответствии с их настройкой.
Есть еще один вариант, который я думал об импорте файлов конфигурации xml из папки WEB-INF в applicationContext.xml. Но я еще не пробовал и не уверен, насколько это возможно.applicationContext xml-файл за пределами папки src

+0

Какая конфигурация? Разрешено ли добавлять/удалять компоненты в XML или просто изменять некоторые значения, такие как URL-адреса, пароли и т. Д. –

+0

@TomaszNurkiewicz ApplicationContext имеет верблюдовые маршруты, клиент которых будет меняться в соответствии с его потребностями. –

ответ

1

С вашего требования точки зрения, нет абсолютно никакой разницы между поместив его в WEB-INF или WEB- Каталог INF/classes: в любом случае он должен быть доступен из взорванного WAR/EAR после развертывания, что может быть невозможно, если ваш сервер приложений не взорвет его (т. Е. JBoss может работать непосредственно с WAR).

IMO, решение для вас - прекратить использование реализации WebApplicationContext. Используйте DefaultListableBeanFactory, который должен быть инициализирован в ServletContextListener, считывая файл конфигурации вручную. Таким образом, вы можете получить путь к applicationContextFile из среды ApplicationServer (используя JNDI или любой другой способ, который подходит вам), поэтому он может быть местом где угодно на машине, на которой находится Сервер приложений.

По крайней мере, это то, что мы сделали, по той же причине, что и у вас.

1

Да, вы можете это сделать, но путь к классам - довольно логичное место для их размещения.

В вашем web.xml, в определении для contextConfigLocation, просто добавьте /WEB-INF/applicationContext.xml в раздел.

1

Если добавить это в web.xml, то вы можете получить доступ к ApplicationContext

<context-param> 
    <param-name>contextConfigLocation</param-name> 
     <param-value> 
     /WEB-INF/applicationContext.xml 
     </param-value> 
</context-param> 
Смежные вопросы