使用Eclipse基于Maven的Spring MVC 调试心得(二)--- Spring配置

接 使用Eclipse基于Maven的Spring MVC 调试心得(一)--- Maven配置

3.Spring项目的web.xml配置

在Dynamic Web Project中,web.xml可谓是最重要的文件之一,它的配置包括:1)请求地址(url-pattern)与处理类(servlet-class)之间通过servlet-name来进行的映射(servlet-mapping)。因此,此文件的配置也关乎到我们访问网站的请求能否正常的处理。

(1)在Spring MVC项目中通过配置web.xml来拦截所有的url请求,配置如下:


           mvc-dispatcher
         
           /
      


(2)DispatcherServlet是Spring MVC的核心,因此我们不需要通过web.xml来拦截并分配url请求,而是将所有请求都交给Spring中的DispatcherServlet,让DispatcherServlet来进行处理,配置如下:


           mvc-dispatcher
            
org.springframework.web.servlet.DispatcherServlet

           1


(3)这里需要在“”标签中添加DispatcherServlet配置文件的路径,否则默认为/WEB-INF/$servlet-name$-serlet.xml,这里配置路径为/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml配置如下:


contextConfigLocation    
/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml



因此 标签的完整配置如下:


mvc-dispatcher

org.springframework.web.servlet.DispatcherServlet


contextConfigLocation
/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml


1


(4)web.xml的完整配置如下


 

 

  Archetype Created WebApplication
 
      
  
           mvc-dispatcher

org.springframework.web.servlet.DispatcherServlet

           
           
contextConfigLocation      
/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml


           1
      
      
mvc-dispatcher

/
      
 



 

4.DispatcherServlet的xml配置文件的配置

DispatcherServlet的配置文件MVC_Dispatcher_Servlet.xml(此名字可变,与上面web.xml配置文件中的 --> --> 标签中的值相同即可)提供相关的Spring MVC 配置。可配置选项包括:启用的功能(如注释功能),DispatcherServlet上下文,静态资源处理,启用的ViewResolver等等。

(1)启用Spring基于注释(annotation )的依赖注入(dependencyinjection,DI,关于依赖注入的讲解见小知识点),配置如下:



(2)配置Dispatcher的上下文环境,包括控制器(Controller)所在的包名,配置如下:


           


(3)HandlerMapping配置。这里无需配置,因为Spring MVC可以默认启动。

(4)注解驱动配置。此配置可扩充注解驱动,用于将请求参数绑定到控制器参数,即将请求的地址绑定到注解了控制器的某个类的某个方法上,详细请见控制器的编写部分。配置如下:



(5)配置加载的静态资源的路径,静态资源包括 CSS,JavaScript, images 等资源文件,配置如下:



(6)配置处理 ViewResolver 的类,可以用多个ViewResolver,使用order属性排序。配置如下:


           
           
                 
                      
                      
                       
                 
           
 
           
                 
                      
                      

                 
           
           
      


 

(7)配置Spring MVC 内部的ViewResolver。因为InternalResourceViewResolver是Spring 内部的ViewResolver,所以应将其放在最后,并应配置其前缀(prefix)和后缀(suffix)属性,以便控制器返回字符串时能找到对应的视图(View)。比如这里配置了prefix 为 /WEB-INF/jsps/,suffix为 .jsp,则若方法返回一个字符串home 时,ViewResolver 会自动拼接成 /WEB-INF/jsps/home.jsp。此配置如下:

      


           
           
           
      

 

(8)配置 ResolveLazily为200*1024*1024,即200M,用于捕获文件异常,此配置我还未弄懂??




      


 

(9)完整配置如下:


 

 
      
 
      
      
 
      
      
           
      
 
      
 
      
      
 
      
      
 
 
      
      
           
           
                 
                      
                      
                      
                 
           
 
           
                 
                      
                      
                      
                 
           
           
      
 
      
           
           
           
      
 
 
      
      
           
           
           
      



 

5.控制器(Controller)类的编写

编写控制器类和控制器方法时,由于需要基于注解的控制器和扩充了注解驱动,因此需要导入org.springframework.stereotype 包和org.springframework.web.bind.annotation.RequestMapping 包。

(1)编写控制器类

因为在MVCDispatcherServlet.xml配置文件中启用了基于注解(annotation)依赖注入,因此控制器类前应加上注解 @Controller。又因为在MVCDispatcherServlet.xml配置文件中扩充了注解驱动,即可以将请求参数绑定到控制器参数,因此控制器类前应加上注解@RequestMapping ,如:@RequestMapping("/hello"),则访问 localhost:8080/项目名/hello ,就会访问本类

(2)编写控制器方法

在控制器类中编写控制器方法前,只需加上注解@RequestMapping()即可,如:@RequestMapping("/mvc"),则访问 localhost:8080/项目名/hello/mvc ,就会访问本方法。然后ViewResolver根据本方法返回的参数,依据4.(7),拼接视图地址,如:本方法返回字符串 home ,则依据4.(7),拼接出/WEB-INF/jsps/home.jsp的视图(View)地址。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("hello")
public class HelloSpringMVC
{
	
	@RequestMapping("mvc")
	public String hello()
	{
		return "home";
	}
}


 

6.注意问题:

(1)需要在项目的Project Facets 添加 Dynamic Web Module ,否则项目将无法添加到Tomcat容器中。

右击项目 --> 属性 -->Project Facets --> 勾选 Dynamic WebModule

使用Eclipse基于Maven的Spring MVC 调试心得(二)--- Spring配置_第1张图片

(2)需要在 Deployment Assembly 中添加 Maven Dependencies ,否则项目编译时会缺失通过Maven下载的依赖包。

右击项目 --> 属性 -->Deployment Assembly --> Add --> Java Build Path Entries --> MavenDependencies --> 完成。

使用Eclipse基于Maven的Spring MVC 调试心得(二)--- Spring配置_第2张图片

(3)需要在Java 构建路径中添加Server Runtime库,否则会报错。

右击项目 --> 属性 --> JavaBuild Path--> --> Library -->Add Library --> Server Runtime -->Apache Tomcat v7.0 --> 完成。

 使用Eclipse基于Maven的Spring MVC 调试心得(二)--- Spring配置_第3张图片

使用Eclipse基于Maven的Spring MVC 调试心得(二)--- Spring配置_第4张图片


 

 

7.小知识点:

(1)依赖注入:依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者因此也称为依赖注入。

你可能感兴趣的:(JAVA-SSH框架)