SpringMVC_配置和注解--跟海涛学SpringMVC(和自己在项目中的实际使用的对比)

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #941100 }

Spring2.5 之前,我们都是通过实现Controller 接口或其实现来定义我们的处理器类,就像前面介绍的

这里介绍的是Spring3.1的新特性,虽然现在我用的是spring4.2.6,不过基本的用法差距不大,也可以参考一下

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #ff2600 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px Helvetica }
span.s1 { font: 10.5px Helvetica; color: #000000 }
span.s2 { font: 12.0px Helvetica; color: #ff2600 }

@Controller:用于标识是处理器类;

@RequestMapping:请求到处理器功能方法的映射规则;

@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;

@ModelAttribute:请求参数到命令对象的绑定;

@SessionAttributes:用于声明session 级别存储的属性,放置在处理器类上,通常列出模型属性(如

@ModelAttribute)对应的名称,则这些属性会透明的保存到session 中;

@InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px Helvetica }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #ff2600 }
span.s1 { font: 12.0px Helvetica; color: #ff2600 }
span.s2 { font: 10.5px Helvetica; color: #000000 }

@CookieValue:cookie 数据到处理器功能处理方法的方法参数上的绑定;

@RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定;

@RequestBody:请求的body体的绑定(通过HttpMessageConverter 进行类型转换);

@ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);

@ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因;

@ExceptionHandler:注解式声明异常处理器;

@PathVariable:请求URI 中的模板变量部分到处理器功能处理方法的方法参数上的绑定,从而支持RESTful 架构风

格的URI;

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px Helvetica; color: #ff40ff }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px Helvetica }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px Times }
span.s1 { color: #000000 }
span.s2 { color: #ff40ff }
span.s3 { font: 10.5px Times; color: #ff40ff }
span.s4 { font: 10.5px Helvetica; color: #ff40ff }
span.s5 { font: 10.5px Helvetica }
span.s6 { font: 10.5px Times }

<mvc:annotation-driven>:

自动注册基于注解风格的处理器需要的DefaultAnnotationHandlerMapping、AnnotationMethodHandlerAdapter

支持 Spring3的ConversionService 自动注册

支持 JSR-303验证框架的自动探测并注册(只需把JSR-303实现放置到classpath)

自动注册相应的HttpMessageConverter(用于支持@RequestBody 和 @ResponseBody)(如XML输入输出转换器

(只需将JAXP实现放置到classpath)、JSON 输入输出转换器(只需将Jackson 实现放置到classpath))等。

<mvc:interceptors>:注册自定义的处理器拦截器;

<mvc:view-controller>:和ParameterizableViewController 类似,收到相应请求后直接选择相应的视图;

<mvc:resources>:逻辑静态资源路径到物理静态资源路径的支持;

<mvc:default-servlet-handler>:当在web.xml 中DispatcherServlet使用<url-pattern>/</url-pattern> 映射时,能映射静

态资源(当Spring Web MVC框架没有处理请求对应的控制器时(如一些静态资源),转交给默认的Servlet来响应静态

文件,否则报404 找不到资源错误,)。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px Helvetica }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Courier }
span.s1 { color: #ff40ff }
span.s2 { font: 10.0px Courier }
span.s3 { font: 10.0px Helvetica }
span.s4 { font: 10.5px Helvetica }

Flash 属性和 RedirectAttribute:通过FlashMap 存储一个请求的输出,当进入另一个请求时作为该请求的输入,

典型场景如重定向(POST-REDIRECT-GET 模式,1、POST 时将下一次需要的数据放在FlashMap;2、重定向;3、通过

GET 访问重定向的地址,此时FlashMap 会把1 放到FlashMap 的数据取出放到请求中,并从FlashMap 中删除;从而支

持在两次请求之间保存数据并防止了重复表单提交)。

Spring Web MVC 提供FlashMapManager 用于管理FlashMap,默认使用SessionFlashMapManager,即数据默认存储

在session中。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px Helvetica }
span.s1 { color: #ff40ff }

@Validated:JSR-303 的javax.validation.Valid 一种变体(非JSR-303 规范定义的,而是Spring 自定义的),用于

提供对Spring 的验证器(org.springframework.validation.Validator)支持,需要Hibernate Validator 4.2及更

高版本支持;

@RequestPart : 提供对“ multipart/form-data ” 请求的全面支持, 支持Servlet 3.0 文件上传

(javax.servlet.http.Part)、支持内容的HttpMessageConverter(即根据请求头的Content-Type,来判断内容区数

据是什么类型,如JSON、XML,能自动转换为命令对象),比@RequestParam 更强大(只能对请求参数数据绑定,key-alue

格式),而@RequestPart 支持如JSON、XML 内容区数据的绑定;详见本章的第°?°?°?节

时间: 2024-11-06 08:50:45

SpringMVC_配置和注解--跟海涛学SpringMVC(和自己在项目中的实际使用的对比)的相关文章

跟我学SpringMVC目录汇总贴、PDF下载、源码下载

跟我学SpringMVC目录汇总贴.PDF下载.源码下载 http://jinnianshilongnian.iteye.com/blog/1752171 跟开涛学SpringMVC 在线版目录 第一章 Web MVC简介 第二章 Spring MVC入门 第三章 DispatcherServlet详解 第四章 Controller接口控制器详解(1) 第四章 Controller接口控制器详解(2) 第四章 Controller接口控制器详解(3) 第四章 Controller接口控制器详解(

注解的方式搭建springmvc步骤

1.cope   jar包到lib中 2.配置web.xml文件 <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <!-- Map all requests to the DispatcherSer

spring框架——day02常用配置和注解

一,SpringMVC常用配置 1.springmvc默认加载的配置文件是WEB-INF下的springmvc-servlet.xml,而我们通常将配置文件放在项目的资源目录中,即classpath下,因此需要配置springmvc加载的配置文件地址. 将配置文件转移至resources中,改名,并修改web.xml: 2.上面的配置中所应用的处理器映射器.处理器适配器以及视图解析器都是默认的,可以修改为注解的使用方式. 在springmvc的配置文件中添加配置: <!--注解方式的处理器适配器

Spring介绍及配置(XML文件配置和注解配置)

本节内容: Spring介绍 Spring搭建 Spring概念 Spring配置讲解 使用注解配置Spring 一.Spring介绍 1. 什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由 RodJohnson 在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构

Spring注解开发系列 VIII --- SpringMVC

SpringMVC是三层架构中的控制层部分,有过JavaWEB开发经验的同学一定很熟悉它的使用了.这边有我之前整理的SpringMVC相关的链接: 1.SpringMVC入门 2.SpringMVC进阶 3.深入SpringMVC注解 看过之后大致对springmvc有一个了解,但对于真正完全掌握springmvc还差得远,本篇博客主要针对的是springmvc的注解开发,传统的项目使用spingmvc避免不了地需要在web.xml里配置前端控制器等等,想要在项目中优雅地去掉这些配置,还得学习如

在Spring3 MVC中五步配置集成注解方式Hibernate3

最近在搞一个WEB项目,以前在公司做项目用的都是JPA做ORM持久层,这次这个项目是我自己接的,我决定改一下,用Hibernate3来做ORM持久层.于是我网上搜索了Hibernate3怎么配置集成到Spring3 MVC上,发现千奇百怪,而且很多都是不是基于注解方式配置,显然那些文字上面的配置方式已经跟如今的Hibernate3注解支持方式脱节了,于是我决定自己搞一把,首先说一下网上那些配置方式的不好的地方,很多文章都提到要jdbc.properties文件与Hibernate config文

spring--处理器拦截器详解——跟着开涛学SpringMVC

5.1.处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器) 类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理.   5.1.1.常见应用场景 1.日志记录:记录请求信息的日志,以便进行信息监控.信息统计.计算PV(Page View)等. 2.权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面: 3.性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时

Spring注入:配置与注解

之前在某电商公司的时候也接触过一点Spring,不过了解不深,只是大概知道这个东西的存在.现在在一家公司实习的时候,才系统的看了一下Spring,这个框架网上的解释都很多,但主要都会介绍一下关于spring注入这一点,其实spring还有拦截的功能,而spring本身又是可以通过注解来使用,也可以通过配置文件使用,比较复杂,这里粗略介绍spring的注入层面,后面也许会写一篇关于spring MVC的博客.同时本文也会附上本人在自学过程中的一些好资料~~ 注入简介 Spring注入可以理解为是对

Hibernate配置(通过注解配置)

本文主要讲通过注解配置来替换Hibernate的映射文件 1.多对一配置 package com.jazz7.entity; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.per