终于有时间对刚学的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. Python爬虫零基础入门(系列)

    一.前言上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. update ...

  2. 各种xml配置文件(所含内部标签及顺序)的提示功能是真的人性化

    通过mybatis generator的配置文件来举例,其他配置文件(web.xml,mybatis,spring,springmvc等)同理 mybatis可以通过mybatis generator ...

  3. js对数组、对象的深拷贝、复制

    基本类型的数据是存放在栈内存中的,而引用类型的数据是存放在堆内存中的 基本类型:Number Boolean undefined String Null 引用类型:Object Function js ...

  4. react16 路由按需加载、路由权限配置

    1. 路由按需加载: 不做按需加载,代码全部打包在bundle.js 文件里,首屏渲染很慢,项目文件较多,会出现1分钟加载的可能性. import React, { Component } from ...

  5. Linux内存描述之高端内存–Linux内存管理(五)

    服务器体系与共享存储器架构 日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 Linux-4.7 X86 & arm gatieme LinuxDeviceDriver ...

  6. 关于Qt画点及计算机专业基础课程介绍

    在计算机图形图像学中,开始都是先画点,我曾经在汇编上tc2.0上画点,后来是MFC,VB,Qt,Python,我觉得对于计算机专业的选择QT的原因是它是个C系的功能强大庞大的库,可以少写很多代码,但是 ...

  7. dnn文本分类

    简介 文本分类任务根据给定一条文本的内容,判断该文本所属的类别,是自然语言处理领域的一项重要的基础任务.具体的,本任务是对文本quey进行分类,任务流程如下: 收集用户query数据. 清洗,标记. ...

  8. [Luogu1291][SHOI2002]百事世界杯之旅

    题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...

  9. 百万年薪python之路 -- JS的BOM与DOM对象

    BOM对象 location对象 location.href 获取URL location.href="URL" // 跳转到指定页面 location.reload() 重新加载 ...

  10. ASP.NET WebApi+Vue前后端分离之允许启用跨域请求

    前言: 这段时间接手了一个新需求,将一个ASP.NET MVC项目改成前后端分离项目.前端使用Vue,后端则是使用ASP.NET WebApi.在搭建完成前后端框架后,进行接口测试时发现了一个前后端分 ...