Каков наилучший способ загрузить весенний конфиг xmls? - PullRequest
1 голос
/ 04 сентября 2011

Мне нужно загрузить 3 весенних конфигурационных XML-файла в приложение myproj spring mvc с именами myproj-controllers.xml, myproj-services.xml и myproj-dao.xml.У меня есть два варианта их загрузки.

Во-первых, используйте ресурсы импорта в myproj-servlet.xml

<import resource="myproj-controllers.xml"/>
<import resource="myproj-services.xml"/>
<import resource="myproj-dao.xml"/>

или, во-вторых, в файле web.xml, используя контекстный параметр, подобный этому

<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-values>/WEB-INF/myproj-controllers.xml</param-values>
   <param-values>/WEB-INF/myproj-services.xml</param-values>
   <param-values>/WEB-INF/myproj-dao.xml</param-values>
</context-param>

и добавление слушателя ContextLoader

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

Какой подход рекомендуется?И почему?По моему мнению, я считаю, что подход к импорту проще, поскольку нам нужно только внести изменения в myproj-servlet.xml вместо web.xml.

Ответы [ 2 ]

1 голос
/ 04 сентября 2011

Spring позволяет объявлять несколько контекстов в отношении «родитель-потомок», поэтому я всегда выбирал один корень applicationContext.xml, содержащий мои компоненты приложения (службы, DAO и т. Д.), И один action-servlet.xml для контекстов сервлета (сопоставления запросов, преобразователи представления и т. Д.).

Мне когда-то нужен был action-servlet-2.xml файл, но у меня все еще был только один корень applicationContext.xml для обоих контекстов сервлета.

Так (для меня) это всегда было родительский контекст + дочернийcontext .

Единственная необходимость разбивать файлы на несколько частей - просто уменьшить размер XML (что лучше всего делает <import>).

Для меня,параметр contextConfigLocation относится к файлам контекста приложения, загружаемым вместе в один экземпляр контекста приложения.Но ваши файлы (myproj-controllers.xml, myproj-services.xml, myproj-dao.xml) кажутся частями одного файла контекста приложения .

По этой причине я лично выбрал бы операторы <import> и имел бы только одно значение (для контекста корневого приложения) в параметре contextConfigLocation.

0 голосов
/ 04 сентября 2011

Я предпочитаю подход слушателя загрузчика контекста, но, возможно, это потому, что я никогда не рассматривал метод импорта.Я попробую это.Спасибо.

Я не вижу никаких преимуществ в производительности.Файл WAR должен быть повторно развернут в любом случае.Он изменяет один файл, а не другой.Я не вижу никакой разницы.У меня есть ощущение сарая для велосипеда, но я могу ошибаться.

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