前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring常用注解

spring常用注解

作者头像
用户10325771
发布2023-03-14 15:46:53
7580
发布2023-03-14 15:46:53
举报
文章被收录于专栏:java springboot docker
1 @Controller

处理器(后端控制器)Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示,在SpringMVC 中提供了一个非常简便的定义Controller 的方法:@Controller,用于标记在一个类上

在配置文件中配置:

2 @RequestMapping

@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径

url路径映射: @RequestMapping(value=”/item”)或@RequestMapping(“/item) value的值是数组,可以将多个url映射到同一个方法

窄化请求映射 : 在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,通过此方法对url进行分类管理。 如下:@RequestMapping放在类名上边,设置请求前缀 @Controller @RequestMapping(“/item”) 方法名上边设置请求映射url:@RequestMapping放在方法名上边 @RequestMapping(“/queryItem “) 访问地址为:/item/queryItem

请求方法限定 : GET:@RequestMapping(value=”/editItem”,method=RequestMethod.GET) POST:@RequestMapping(value=”/editItem”,method=RequestMethod.POST)

3 @PathVariable

url模板模式映射 :@RequestMapping(value=”/ viewItems/{id}”):{×××}占位符,请求的URL可以是“/viewItems/1”或“/viewItems/2”,通过在方法中使用@PathVariable获取{×××}中的×××变量。

@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。

4 @RequestBody

作用:@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。

应用: @RequestBody注解实现接收http请求的json数据,将json数据转换为java对象

5 @ResponseBody

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

应用:@ResponseBody注解实现将controller方法返回对象转换为json响应给客户端

6 @RequestParam

使用@RequestParam常用于处理简单类型的绑定。

value:参数名字,即入参的请求参数名字,如value=“item_id”表示请求的参数区中的名字为item_id的参数的值将传入; required:是否必须,默认是true,表示请求中一定要有相应的参数 ;defaultValue:默认值,表示如果请求中没有同名参数时的默认值

形参名称时items_id,但是这里使用的是value=”id”,限定请求的参数名是id

7 @Validated和BindingResult

注意:添加@Validated表示在对items参数绑定时进行校验,校验信息写入BindingResult中,在要校验的pojo后边添加BingdingResult, 一个BindingResult对应一个pojo,且BingdingResult放在pojo的后边

value= {ValidGroup1.class}:表示使用的是分组校验

8 @ModelAttribute

springmvc默认对pojo数据进行回显,pojo数据传入controller方法后,springmvc自动将pojo数据放到request域,key等于pojo类型(首字母小写) 使用@ModelAttribute指定pojo回显到页面在request中的key

@ModelAttribute还可以将方法的返回值传到页面 在商品查询列表页面,通过商品类型查询商品信息。在controller中定义商品类型查询方法,最终将商品类型传到页面。

9 @Autowired

@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作

10 @component

把普通pojo实例化到spring容器中,相当于配置文件中的<bean id=”” class=””/> ,@component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注

11 @Scope

spring中bean的scope属性,有如下5种类型:

代码语言:javascript
复制
singleton 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例
prototype表示每次获得bean都会生成一个新的对象
request表示在一次http请求内有效(只适用于web应用)
session表示在一个用户会话内有效(只适用于web应用)  globalSession表示在全局会话内有效(只适用于web应用)
12 @RestController

@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

13 @Configuration

从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器

13 @JSONField(serialize = false)

@JSONField(serialize = false)时用来忽略不想序列化的字段的,但是如果加了final,这个字段就无法被过滤 @JSONField(serialize = false) private int SCENE; // 可被过滤 @JSONField(serialize = false) private final int SCENE; // 不能过滤

代码语言:javascript
复制
compile group: 'com.alibaba', name: 'fastjson', version: '1.2.54'
14 Qualifier

Qualifier的意思是合格者,通过这个标示,表明了哪个实现类才是我们所需要的,添加@Qualifier注解,需要注意的是@Qualifier的参数名称为我们之前定义@Service注解的名称之一。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-07),如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 @Controller
  • 2 @RequestMapping
  • 3 @PathVariable
  • 4 @RequestBody
  • 5 @ResponseBody
  • 6 @RequestParam
  • 7 @Validated和BindingResult
  • 8 @ModelAttribute
  • 9 @Autowired
  • 10 @component
  • 11 @Scope
  • 12 @RestController
  • 13 @Configuration
  • 13 @JSONField(serialize = false)
  • 14 Qualifier
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档