Как applicationcontext.xml интерпретируется в распорках и пружине - PullRequest
1 голос
/ 22 марта 2012

У меня один вопрос к applicationcontext.xml ...

, когда web.xml интерпретируется сервером (tomcat или что-то еще) .. сначала он видит applicationcontext.xml или struts.xml

(или) сначала он видит, существует ли struts.xml, затем интерпретирует applicationcontext.xml, а затем возвращается в struts.xml и включает среду applicationcontext.xml в struts.xml, а затем интерпретирует struts.xml

Я хотел бы знать, как протекает поток.

Я использую Struts2 и Spring 3 Framework ...

Спасибо всем ..

1 Ответ

1 голос
/ 22 марта 2012

Рассмотрим следующий файл web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>  
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>  
    <welcome-file-list>
        <welcome-file>/index.action</welcome-file>
    </welcome-file-list>
</web-app>

Фильтры инициализируются в порядке появления. Так что наиболее определенно struts.xml читается перед applicationContext.xml, однако, если все наоборот, будет верно. Он является частью спецификации сервлета и явно указан здесь: http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html

Если, однако, вы использовали сервлет для доступа к ресурсу, он будет инициализирован после фильтров, а порядок может контролироваться элементом загрузки сервлета при запуске.

...