文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringMVC的常用注解

2023-08-31 21:59

关注

SpringMVC的常用注解

1、@Controller

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。

2、@RequestMapping

用于处理请求 url 映射的注解,可用于类或方法上。

 使用在类上: 请求 URL 的第一级访问目录。此处不写的话,就相当于应用的根目录 使用在方法上: 请求 URL 的第二级访问目录 

属性:

1、name:相当于方法的注释,使方法更易理解2、value:指定请求的实际地址3、path:与value同义,两者都是用来作为映射使用的4、method:指定请求的method类型, GET、POST、PUT、DELETE等5、params:该属性指定,请求中必须包含params属性规定的参数时,才能执行该请求6、headers:该属性指定,请求中必须包含某些指定的header值,才能够让该方法处理请求7、consumes:指定处理请求的提交内容类型(Content-Type),例如:application/json、text/html时,才能够让该方法处理请求8、produces:指定返回的内容类型,返回的内容类型必须是request请求头(Accept)中所包含的类型,此外,produces属性还可以指定返回值的编码

3、@Resource和@Autowired

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。

相同点:

两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。

不同点:

@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用。

@Resource默认按照ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。
@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。
如果既不制定name也不制定type属性,这时将通过反射机制使用byName自动注入策略。

4、@RequestParam

把请求中指定名称的参数给控制器中的形参赋值。

属性:

1、value:请求参数中的名称。2、required:请求参数中是否必须提供此参数。 默认值:true。 表示必须提供,如果不提供将报错。 3、defaultValue:默认值

使用场景:

1@RequestParam 只能用于接收 url 的传参?name=xxx2、form表单的提交例: @RequestMapping("/testRequestParam") public String testRequestParam(@RequestParam(value = "name",required = true,defaultValue = "李四") String username){        System.out.println("username="+username);        return "success";    }

5、@RequestBody

  1. 用于获取请求体内容。 直接使用得到是 key=value&key=value…结构的字符串。
  2. 把获得json类型的数据转成pojo对象。

属性:

required:是否必须有请求体。默认值是:true。当取值为 true 时,get 请求方式会报错。如果取值为 false, get 请求得到是 null。

注:@RequestBody 不能使用get请求, 在Controller的方法参数里,有且只有一个

6、@ResponseBody

@ResponseBody用于将 Controller 的方法返回的对象,通过 HttpMessageConverter 接口转换为指定格式的数据如: json,xml 等,通过 Response 响应给客户端

使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)

用法:

7、@ PathVariable

用于绑定 url 中的占位符。 例如:请求 url 中 /delete/{id}, 这个{id}就是 url 占位符。

url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。

属性:

1、value:用于指定 url 中占位符名称。2、required:是否必须提供占位符。 

使用场景:

获取路径中的参数例: @RequestMapping("testPathVaribale/{id}") public String testPathVaribale(@PathVariable(value = "id") Integer id){     System.out.println("id="+id);       return "success";}

8、@RequestHeader

用于获取请求消息头。

属性:

1、value:提供消息头名称2、required:是否必须有此消息头 

使用场景:

从请求头中获取参数,鉴权(token) Authorization

9、@CookieValue

用于把指定 cookie 名称的值传入控制器方法参数。

属性:

1、value:指定 cookie 的名称。2、required:是否必须有此 cookie。 

使用场景:

      @RequestMapping("/testCookieValue")    public String testCookieValue(@CookieValue("JSESSIONID") String sessionId) {        System.out.println("JSESSIONID = " + sessionId);        return "success";    }

10、@ModelAttribute

代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用Controller时,先执行@ModelAttribute方法。

在 Controller 中使用 @ModelAttribute 时,有以下几种应用情况。
1、应用在方法上
2、应用在方法的参数上
3、应用在方法上,并且方法也使用了 @RequestMapping

来源地址:https://blog.csdn.net/skyxxy123/article/details/127532094

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯