2016-12-22 3 views
1

Содержание web.xmlКак загрузился контент приложения?

<servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/krams/*</url-pattern> 
</servlet-mapping> 

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

Существует также applicationContext.xml файл в WEB.INF, но его нет в web.xml. Как это было загружено?

+0

... возможно, org.springframework.web.context.ContextLoaderListener? Очень неясно, что вы действительно спрашиваете здесь, почему вас это волнует? – Gimby

+0

Возможный дубликат [Где точное местоположение файла конфигурации spring и web.xml?] (Http://stackoverflow.com/questions/17444410/where-is-the-exact-location-of-spring-config-file и-веб-XML) –

ответ

0

ContextLoaderListerner, ContextLoader и XmlWebApplicationContext классы не несут ответственность за загрузку applicationContext.xml.

Пожалуйста, взгляните на их исходный код на git.

Вы найдете, что ContextLoaderListerner распространяется ContexLoader.

В документации ContextLoader, они отметили, что:

* If not explicitly specified, the context implementation is supposed to use a 
* default location (with XmlWebApplicationContext: "/WEB-INF/applicationContext.xml"). 

И это значение упоминается в XmlWebApplicationContext следующим образом (с другими постоянными значениями, если вы нуждаетесь в них):

/** Default config location for the root context */ 
public static final String DEFAULT_CONFIG_LOCATION = "/WEB-INF/applicationContext.xml"; 

/** Default prefix for building a config location for a namespace */ 
public static final String DEFAULT_CONFIG_LOCATION_PREFIX = "/WEB-INF/"; 

/** Default suffix for building a config location for a namespace */ 
public static final String DEFAULT_CONFIG_LOCATION_SUFFIX = ".xml"; 

И это является причиной того, что файл applicationContext.xml загружается, хотя он не настроен в файле web.xml. Вам понадобится некоторое время, чтобы понять все эти конфигурации по умолчанию (магия), используемые Spring.

Смежные вопросы