终于有时间对刚学的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_布局

    <该文章参考各大博客以及书籍总结而来,如有问题欢迎指出^ ^> 一.五大传统布局+新布局 线性布局——LinearLayout 相对布局——RelativeLayout 帧布局——Fram ...

  2. P3105 [USACO14OPEN]公平的摄影Fair Photography

    题意翻译 在数轴上有 NNN 头牛,第 iii 头牛位于 xi(0≤xi≤109)x_i\:(0\le x_i\le 10^9)xi​(0≤xi​≤109) .没有两头牛位于同一位置. 有两种牛:白牛 ...

  3. c语言程序设计2

    c语言秋季作业2 问题 答案 这个作业属于哪个课程 C语言程序设计Ⅰ 这个作业要求在哪里 [c语言博客作业02](https://edu.cnblogs.com/campus/zswxy/SE2019 ...

  4. 文本分类(TFIDF/朴素贝叶斯分类器/TextRNN/TextCNN/TextRCNN/FastText/HAN)

    目录 简介 TFIDF 朴素贝叶斯分类器 贝叶斯公式 贝叶斯决策论的理解 极大似然估计 朴素贝叶斯分类器 TextRNN TextCNN TextRCNN FastText HAN Highway N ...

  5. MySQL复制从库建立-xtracebackup方式

    Percona XtraBackup工具提供了一种在系统运行时执行MySQL数据热备份的方法. Percona XtraBackup在事务系统上执行联机非阻塞,紧密压缩,高度安全的完整备份,因此在计划 ...

  6. angular之跨域

    一.什么是跨域? 跨域是指一个域下的文档或者脚本去请求另一个域下的资源.(广义) 广义的跨域: 1.资源跳转:链接跳转.重定向.表单提交. 2.资源嵌入:<link>.<script ...

  7. firefox 实用插件推荐和使用

    1.firefox安装插件 2.firebug 3.Cookie editor 4.Tamper data 5.user agent switcher 6.hackbar 7.httpfox抓包工具 ...

  8. cobalt strike批量发送钓鱼邮件

    0×01 利用Cobalt strike生成木马 这里我们生成木马可以用cs带的HTA.OFFICE宏.word宏来使目标上线cs,这里以word宏病毒为例子. 首先我们需要制作一个word宏病毒来进 ...

  9. Java Stream函数式编程案例图文详解

    导读 作者计划把Java Stream写成一个系列的文章,本文只是其中一节.更多内容期待您关注我的号! 一.什么是Java Stream? Java Stream函数式编程接口最初是在Java 8中引 ...

  10. lodash 学习笔记

    一.介绍 官方文档: 中文 - https://www.lodashjs.com/docs/latest 英文- https://lodash.com/docs/4.17.15 1.作用 lodash ...