Spring MVC常用注解

本文详细介绍了Spring MVC框架中常用注解的功能与用法,包括@RequestMapping及其属性、四大组件注解、@Autowired与@Resource的区别、@PathVariable和@RequestParam的使用场景,以及@CookieValue和@SessionAttributes的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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/")


(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中。例如

5、Responsebody与RequestHeader

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值