Spring MVC常用注解

1、RequestMapping

RequestMapping注解类的属性,分别有value,method,consumes,produces,params,headers属性。
(1)value:指定处理请求的路径,value="/login"
(2)method=RequestMethod.post,指定请求的属性。
(3)produces,指定请求中包含返回内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;。
consumes,指定请求Content-Type,consumes={"application/json","text/plain"}
(4)params,可以指定url中的params ={"myparam=myvalue"}
headers,某些指定的header值,才能让该方法处理请求,例如@RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=http://www.ifeng.com/")

Spring MVC常用注解_第1张图片
(5)@RequestMapping不仅支持标准的URL,还支持Ant风格和带{xxx}占位符的URL,下面的URL都是合法的:

/user/*/login:匹配/user/aaa/login,/user/任意字符/login 等

/user/**/login:匹配/user/login, /user/aaa/bbb/login 等
/user/login??:匹配/user/loginAA, /user/loginbb 等
/user/{userId}:匹配/user/123, /user/234 等
/user/**/{userId}:匹配/user/aaa/bbb/123,/user/aaa/234等

2、四大注解

@Component 是通用标注
@Controller 标注 web 控制器
@Service 标注 Servicec 层的服务
@Respository 标注 DAO 层的数据访问

这些注解都是类级别的, 可以不带任何参数,也可以带一个参数,代表bean名字,在进行注入的时候就可以通过名字进行注入了。

3、resource和Autowired

@autowired ,是spring自带的
 
默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false

按名称加载,@Autowired(flase)

@Qualifier("loginService")

LoginService service

@Resource 是j2ee自带 @Resource,默认安装名称进行装配,  

3、PathVariable与RequestParam

PathVariable注解 @RequestMapping注解中使用占位符情况下,需要使用@PathVariable注解指定占位符参数。

对应url,/url/{id}

RequestMapping(@PathVariable("id") String name)

RequestParam注解类 直接获取url参数给函数参数,当不带参数时,两者名称必须相同。

获取请求参数有两种:request.getParameter("name"),另一种是通过@RequestParam直接获得。

@RequestParam("username") String name .表示将请求中username 直接赋值给name。

有三个属性 value,required,defaultValue。

可以通过required=false表示前端参数不一定要传,有可能为空。因此,参数类型尽量不要使用基本类型int,long等,而应该使用具体的对象类Integer、Long、String等 。

4、CookieValue与SessionAttributes

前者直接获取cookie参数赋值给修饰的形参,后者修饰类将数据存储到session中。例如

Spring MVC常用注解_第2张图片

5、Responsebody与RequestHeader

Responsebody,用于将Controller的方法返回的对象,通过适当的HttpMessageConverter(转换器)转换为指定格式后,写入到Response对象的body数据区。

@RequestHeader 注解,可以把Request请求header部分的值绑定到方法的参数上。相当于,从Request对象中取出请求头中的参数赋值给修饰的形参。

6、将会做一个例子来实践

 

你可能感兴趣的:(java)