终于有时间对刚学的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. (转) websocket 和 socket 剖析

    Socket 与 WebSocket 本站文章除注明转载外,均为本站原创或者翻译. 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商: 本站部分原创和翻译文 ...

  2. springboot使用百度富文本UEditor遇到的问题一览(springboot controller中request.getInputStream无法读取)

    先吐槽一下UEditor作为一个前端的js类库,非要把4种后端的代码给出来,而实际生产中用的框架不同,其代码并不具有适应性.(通常类似其它项目仅仅是给出数据交互的规范.格式,后端实现就可以自由定制) ...

  3. node与mysql的相互使用————node+mysql

    node与mysql的相互使用----node+mysql 为什么选node???因为我是个前端. 为什么选mysql???因为成熟,稳定,听说容易学. 一.mysql数据库: mysql下载和使用我 ...

  4. 采用WPF开发截图程序,so easy!

    前言  QQ.微信截图功能已很强大了,似乎没必要在开发一个截图程序了.但是有时QQ热键就是被占用,不能快速的开启截屏:有时,天天挂着QQ,领导也不乐意.既然是程序员,就要自己开发截屏工具,功能随心所欲 ...

  5. Python爬取猫眼电影100榜并保存到excel表格

    首先我们前期要导入的第三方类库有; 通过猫眼电影100榜的源码可以看到很有规律 如: 亦或者是: 根据规律我们可以得到非贪婪的正则表达式 """<div class ...

  6. 关于Stream的知识分享

    一.什么是Stream 查了一下MSDN,他是这么解释的:提供字节序列的一般视图. 这个解释有点太笼统了,下面,我们来仔细的捋一下 1.什么是字节序列? 字节序列指的是:字节对象被存储为连续的字节序列 ...

  7. Debian更新源加安装Metespolit&&Cobalt Strike

    首先更新下源 修改/etc/apt/sources.list文件 再apt-get update deb http://mirrors..com/debian/ stretch main non-fr ...

  8. vue+element 实现商品sku效果

    在网上搜索了很久,没有发现合适sku编辑的文章,只能自己写一个vue+element 的sku编辑功能.实现的效果如下图 除成本.售价.库存.货号这几个写死的属性外,可自行添加/删除商品属性,自行添加 ...

  9. Did You AK Today? (今天你AK了吗?)

    考虑到本文读者年龄原因,本文改为使用简体中文撰写. 题目描述 今有正整数 n,kn,kn,k,求 1−n1-n1−n 共 nnn 个数的全排列,按字典序的第 kkk 个. 数据满足 1≤n≤105,1 ...

  10. SpringBoot:1.开启SpringBoot之旅

    什么是 Spring Boot Spring Boot是Spring团队设计用来简化Spring应用的搭建和开发过程的框架.该框架对第三方库进行了简单的默认配置,通过Spring Boot构建的应用程 ...