SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-002- 在xml中引用Java配置文件,声明DispatcherServlet、ContextLoaderListener

一、所有声明都用xml

1.

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <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
 3 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 4     <context-param>
 5         <param-name>contextConfigLocation</param-name>
 6         <param-value>/WEB-INF/spring/root-context.xml</param-value>
 7     </context-param>
 8     <listener>
 9         <listener-class>
10             org.springframework.web.context.ContextLoaderListener
11         </listener-class>
12     </listener>
13     <servlet>
14         <servlet-name>appServlet</servlet-name>
15         <servlet-class>
16             org.springframework.web.servlet.DispatcherServlet
17         </servlet-class>
18         <load-on-startup>1</load-on-startup>
19     </servlet>
20     <servlet-mapping>
21         <servlet-name>appServlet</servlet-name>
22         <url-pattern>/</url-pattern>
23     </servlet-mapping>
24 </web-app>

如果没有指定DispatcherServlet 的配置文件,则会自动找根路径下的"servlet名称"-context.xml。DispatcherServlet loads its application context with beans defined in a file whose name is based on the servlet name. In listing 7.3, the servlet is named appServlet .Therefore, DispatcherServlet loads its application context from an XML file at /WEB-INF /appServlet-context.xml.

当然也可以指定配置文件

 1 <servlet>
 2     <servlet-name>appServlet</servlet-name>
 3     <servlet-class>
 4         org.springframework.web.servlet.DispatcherServlet
 5     </servlet-class>
 6     <init-param>
 7         <param-name>contextConfigLocation</param-name>
 8         <param-value>
 9             /WEB-INF/spring/appServlet/servlet-context.xml
10         </param-value>
11     </init-param>
12     <load-on-startup>1</load-on-startup>
13 </servlet>

二、在xml中引入Jav配置文件

1.如何在xml中引入以 @Configuration 注解的Java配置文件呢?

To use Java-based configuration in Spring MVC , you need to tell DispatcherServlet and ContextLoaderListener to use AnnotationConfigWebApplicationContext , an implementation of WebApplicationContext that loads Java configuration classes instead of XML . You can do that by setting the contextClass context parameter and initialization parameter for DispatcherServlet .

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <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
 3 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 4     <context-param>
 5         <param-name>contextClass</param-name>
 6         <param-value>
 7             org.springframework.web.context.support.AnnotationConfigWebApplicationContext
 8         </param-value>
 9     </context-param>
10     <context-param>
11         <param-name>contextConfigLocation</param-name>
12         <param-value>com.habuma.spitter.config.RootConfig</param-value>
13     </context-param>
14     <listener>
15         <listener-class>
16             org.springframework.web.context.ContextLoaderListener
17         </listener-class>
18     </listener>
19     <servlet>
20         <servlet-name>appServlet</servlet-name>
21         <servlet-class>
22             org.springframework.web.servlet.DispatcherServlet
23         </servlet-class>
24         <init-param>
25             <param-name>contextClass</param-name>
26             <param-value>
27                 org.springframework.web.context.support.AnnotationConfigWebApplicationContext
28             </param-value>
29         </init-param>
30         <init-param>
31             <param-name>contextConfigLocation</param-name>
32             <param-value>
33                 com.habuma.spitter.config.WebConfigConfig
34             </param-value>
35         </init-param>
36         <load-on-startup>1</load-on-startup>
37     </servlet>
38     <servlet-mapping>
39         <servlet-name>appServlet</servlet-name>
40         <url-pattern>/</url-pattern>
41     </servlet-mapping>
42 </web-app>
原文地址:https://www.cnblogs.com/shamgod/p/5245059.html