终于有时间对刚学的SpringBoot注解总结一下了,Annotation(注解)是JDK 5.0之后及以后版本引入的,这个时候需要在Spring中申明一个Bean,只能通过xml的方式,非常繁琐。但是不能通过这一点来区分是使用注解还是使用xml形式,使用注解虽然简便,极大的缩小了代码量,对于使用注解,我们会发现它和代码相关度很高结婚的很紧密,对于使用xml配置方式,我们会发现它和代码紧密程度不是很高,跟适合用来做全局的,与代码紧密度不高的,全局配置。它可以创建文档,跟踪代码的依赖性,甚至执行基本编译时检查。注解通常是一“@注解名”在代码中存在的,根据注解的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。他们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制变成实现对这些元数据的访问。另外,你也可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件中。

  • 采用注解也有好多的优势:
  • 采用纯java代码,不再需要配置繁杂的xml文件
  • 在配置中也可以享受面向对象带来的好处
  • 类型安全对重构可以提供良好的支持
  • 减少复杂配置的同时还可以享受到Spring IOC 容器提供的功能

@Controller

注解在一个类上,表示将这一个类标注为用来接收HTTP请求的控制器,也是视图层直接访问的接口集合

@RequestMapping

注解在一个类上,或者某一方法上面,注解将特定的URL和具体的控制器类或控制器类类中的方法绑定

当注解在类上时@RequestMapping(value="/pssc_doc_ups/TestController")

当表标注在方法上时@RequestMapping(value="/getUserList",mothed=RequestMethod.GET)  表示请求名称为getUserList,请求方法为get方法,当在后面不写method时默认为get方法,也可以不写,这时候我们写的这个接口在前端访问方式就是http://127.0.0.1/pssc_doc_ups/TestController/getUserList

但是看着好像还是有点复杂,这个时候出来下面两个注解

@GetMapping

注解在方法上,@RequestMapping(value="/getUserList",mothed=RequestMethod.GET)

@PostMapping

注解在方法上,@RequestMapping(value="/getUserList",mothed=RequestMethod.POST)

 @Controller
//标注此类为控制层,规定接受HTTP请求并返回响应格式
@RequestMapping(value="/pssc_doc_ups/TestController")
//标注视图层访问此接口,与对应方法绑定,此类方法请求前必须加对于value
public class TestController() {   @RequestMapping(value="/getUserList",mothed=RequestMethod.GET)
  public List<test> getUserList(){
  return //
  }
}

 @ResponseBody

注解在方法上,表示此方法的返回数据直接写入HTTP response body里面,一般在异步获取数据时使用,用于构建RESTful的api,在前后端分离的项目中一般都会使用@ResponseBody,因为无需跳转页面,使用此注解后,不管返回什么类型的数据都会以json响应,除了返回String类型返回的还是String,一般配合@RequestMapping使用,通俗的将就是返回的是数据而不是页面。

@RestController

注解在一个类上,看样子好像是@Controller的高配版,是个特殊类,@Controller ⊆  @RestController,大概是这样的关系吧。有没有一种情况,当我们在一个类上标注了注解@Controller之后,这个类的所有方法都是标注@ResponseBody,即都是返回的数据格式,控制器没有参与页面跳转,只是负责请求返回,这个时候我们就可以用@RestController来代替@Controller和@ResponseBody了,即直接在类上使用@RestController注解表示此类所以方法为返回JSON数据,一般也用在前后端分离的后端项目上。大概理解为@RestController = @Controller + @ResponseBody

@PathVariable

注解在方法上,可以表示为在请求的URL中得到请求的参数值,比如我们访问接口

http://127.0.0.1/pssc_doc_ups/TestController/getUserList/00001

我们在后端可以这样,即将URL中的变量作为参数

@Controller  
@RequestMapping(value="/pssc_doc_ups/TestController")

publicclass TestController { @RequestMapping(value="/getUserList/{userId}",method = RequestMethod.GET) 
  public String getLogin(@PathVariable("userId") String userId){
  System.out.println("User Id : " + userId);
  }
}

@RequestParam

注解用在参数上,一般用来接受请求的参数,例如访问接口

http://127.0.0.1/pssc_doc_ups/TestController/getUserList?userId=00001

我们在后端可以这么写

@Controller
@RequestMapping(value="/pssc_doc_ups/TestController") public class TestController { @RequestMapping(value="/getUserList",method = RequestMethod.GET)
  public String getLogin(@RequestParam("userId") String userId){
  System.out.println("User Id : " + userId);
  }
}

@RequestBody

注解在参数上,表示请求体,当前端需要给后端传递多个参数时,不能写十个@RequestParam一个一个来接受吧,把前端数据封装了之后直接使用注解@ResponseBody来表示用一个对象来接受这个参数,可以是数组,Map等等

好了,上面这些注解一般用在控制层的比较多,在业务层也有一些注解:

@Service

注解在一个类上,必须要有的,相当于xml配置中的bean id = service,service一般用来负责将一个bean注册到spring上下文中,可以直接使用注解@Service,也可以使用@Service("serviceName")来具体指定

@Autowired

使用率高达80%的一个注解,一般都会用,可以对类成员变量,方法及构造函数进行标注完成自动装配的工作

@Qualifier

当使用注解@Autowired之后,自动装配为bean,但是当找到两个一样的bean之后会抛出异常,无法起来项目,需要使用注解@Qualifier来指定唯一,一般配合@Autowired来使用。@Qualifier("  ")里边为指定的唯一名

还有好多的注解...比如jpa里面,实体类@Column,@Target等等,还有spring boot启动类上面的一些。由于 使用的是公司的外网机器,没有装配IDEA,代码举得例子少了一些,如有一些错误欢迎大佬们骚扰我,骚扰我。。

SpringBoot 常用注解简单总结的更多相关文章

  1. 接近8000字的Spring/SpringBoot常用注解总结!安排!

    0.前言 大家好,我是 Guide 哥!这是我的 221 篇优质原创文章.如需转载,请在文首注明地址,蟹蟹! 本文已经收录进我的 75K Star 的 Java 开源项目 JavaGuide:http ...

  2. Spring/SpringBoot常用注解总结

    转自:[Guide哥] 0.前言 可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使 ...

  3. 菜鸟的springboot常用注解总结

    菜鸟的springboot常用注解总结 0.前言 可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用 ...

  4. SpringBoot 常用注解(持续更新)

    SpringBoot 常用注解 @SpringBootApplication @Bean @ComponentScan @ControllerAdvice @ExceptionHandler @Res ...

  5. SpringBoot 入门篇(二) SpringBoot常用注解以及自动配置

    一.SpringBoot常用注解二.SpringBoot自动配置机制SpringBoot版本:1.5.13.RELEASE 对应官方文档链接:https://docs.spring.io/spring ...

  6. SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解

    SpringBoot介绍 引言 为了使用ssm框架去开发,准备ssm框架的模板配置 为了Spring整合第三方框架,单独的去编写xml文件 导致ssm项目后期xml文件特别多,维护xml文件的成本也是 ...

  7. SpringBoot常用注解的介绍及使用 - 转载

    常用注解 @springBootApplication 系统启动类注解,此注解是个组合注解,包括了:@SpringBootConfiguration,@EnableAutoConfiguration, ...

  8. 结合参数接收响应转换原理讲解SpringBoot常用注解

    一.常用注解回顾 1.1 @RequestBody与@ResponseBody //注意并不要求@RequestBody与@ResponseBody成对使用. public @ResponseBody ...

  9. springboot系列五、springboot常用注解使用说明

    一.controller相关注解 1.@Controller 控制器,处理http请求. 2.@RespController Spring4之后新加的注解,原来返回json需要@ResponseBod ...

随机推荐

  1. Android NDK(一) ndk-build构建工具进行NDK开发

    本文目录 一.androidstudio环境 二.快捷键配置 三.新建项目 四.NDK开发 五.so文件编译 一. androidstudio的环境 在SDK Tools中安装NDK开发环境(File ...

  2. 初识Django,了解一下大概流程

    学习Django一个礼拜了,对其有了一个大概的了解,自己画了一个简单的图,虽然有点丑,但是基本上已经把自己所想已经表达 写完这篇随笔之后发现自己逻辑表述的有点不太清晰,有点乱,哪里不对,希望各位指正 ...

  3. Cocos2d-x入门之旅[1]场景

    在游戏开发过程中,你可能需要一个主菜单,几个关卡和一个END的界面,如何组织管理这些东西呢? 和其他游戏引擎类似,Cocos也使用了场景(Scene) 这个概念 试想象一部电影或是番剧,你不难发现它是 ...

  4. Java工程师学习指南(中级篇)

    Java工程师学习指南 中级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我写的文章都是站 ...

  5. python基础一(运算符/变量定义/数据类型)

    一.运算符 1.算数运算符 (1)加(+) 注意:字符串与整数之间不能进行相加,需要通过str()或int()进行转换数据类型 整数与整数相加 >>> 1 + 1 2 >> ...

  6. docker配置阿里云镜像

    今天docker pull镜像的时候太慢了  所以这里配置下阿里云镜像 打开阿里云控制台,没有的可以用淘宝账号或者支付宝账号直接登录 打开容器镜像服务,镜像加速器,复制加速器地址 修改配置文件 $: ...

  7. 在VM上安装OpenWrt

    1.选择'自定义',点击'下一步' 2.'硬件兼容性'默认,点击'下一步' 3.'稍后安装操作系统',点击'下一步' 4.客户机操作系统'Linux' 版本'CentOS 64位',点击'下一步' 说 ...

  8. 一个简洁漂亮的jQuery拖放排序插件DDSort

    拖放排序是WEB应用中常见的功能.虽然网上有很多别人已经造好的轮子,但是就我个人而言,没事就喜欢研究原理,自己造轮子,不管强大与否,简洁够用就是我的目标,再一个就是自己写的东西,应用起来得心应手,修改 ...

  9. V2er - Best client for V2EX

    V2er - Best client for V2EX 可能是体验最好的掌上 V2EX 客户端,专为 iOS 打造并在 Github 开源. 关于 V2EX,V2EX 是创意工作者们的社区.这里目前汇 ...

  10. 百万年薪python之路 -- 请求跨域和CORS协议详解

    楔子 什么是同源策略 同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.当一个浏览器的两个tab ...