springboot的核心就是注解。springboot通过各种组合注解,极大地简化了spring项目的搭建和开发。采用纯java代码,不在需要配置繁杂的xml文件。类型安全对重构可以提供良好的支持。

@SpringBootApplication

@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。

其中:

@ComponentScan:让spring Boot扫描到Configuration类并把它加入到程序上下文。
@Configuration :等同于spring的XML配置文件;使用Java代码可以检查类型安全。
@EnableAutoConfiguration :自动配置。

@RequestBody与@ResponseBody

//注意并不要求@RequestBody与@ResponseBody成对使用。

@RequestBody修饰请求参数,注解用于接收HTTP的body,默认是使用JSON的格式

@ResponseBody修饰返回值,注解用于在HTTP的body中携带响应数据,默认是使用JSON的格式。如果不加该注解,spring响应字符串类型,是跳转到模板页面或jsp页面的开发模式。说白了:加上这个注解你开发的是一个数据接口,不加这个注解你开发的是一个页面跳转控制器。

@ResponseBody可以用于写数据加载的接口时候用,但是注意不要混淆了,一个是请求头一个时响应头。两者默认是传输以及接受自动转JSON格式,前端可以直接调用

@RequestMapping注解

@RequestMapping注解是所有常用注解中,最有看点的一个注解,用于标注HTTP服务端点。它的很多属性对于丰富我们的应用开发方式方法,都有很重要的作用。

  • value: 应用请求端点,最核心的属性,用于标志请求处理方法的唯一性;
  • method: HTTP协议的method类型, 如:GET、POST、PUT、DELETE等;
  • consumes: HTTP协议请求内容的数据类型(Content-Type),例如application/json, text/html;
  • produces: HTTP协议响应内容的数据类型。下文会详细讲解。
  • params: HTTP请求中必须包含某些参数值的时候,才允许被注解标注的方法处理请求。
  • headers: HTTP请求中必须包含某些指定的header值,才允许被注解标注的方法处理请求。
    @RequestMapping(value = "/路径", method = POST)@PostMapping(value = "/article")

如果没有写method,应该是默认接受所有类型的。也就是PostMapping等同于@RequestMapping的method等于POST。同理:@GetMapping、@PutMapping、@DeleteMapping也都是简写的方式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tkt4F2Tl-1576241567873)(1.jpg)]

我比较习惯直接用,这样默认接受get或者post。

@RestController与@Controller

@Controller注解是开发中最常使用的注解,它的作用有两层含义:

一是告诉Spring,被该注解标注的类是一个Spring的Bean,需要被注入到Spring的上下文环境中。
二是该类里面所有被RequestMapping标注的注解都是HTTP服务端点。

@RestController相当于 @Controller和@ResponseBody结合。它有两层含义:

一是作为Controller的作用,将控制器类注入到Spring上下文环境,该类RequestMapping标注方法为HTTP服务端点。
二是作为ResponseBody的作用,请求响应默认使用的序列化方式是JSON,而不是跳转到jsp或模板页面。

总结来说就是,如果用的是Controller,接收到请求后返回的是一个跳转地址

比如说:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2B9cxlg2-1576241567874)(2.jpg)]

jump就是一个跳转地址,进入index接口后返回的是一个login.html页面地址

如果是RestController

就是为,接受到请求后,ResponseBody作用返回一个JSon数据

比如说:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M2dAU723-1576241567875)(3.jpg)]

进入/test,index接口后,会获取数据,结果返回的是一个Json字符串

@Autowired

我们编写spring 框架的代码时候。一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量。并且要配套写上 get 和 set方法。
Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。Spring 通过一个 BeanPostProcessor 对 @Autowired 进行解析,所以要让 @Autowired 起作用必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。

具体使用详情:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aQTy3J1a-1576241567877)(4.jpg)]

@Autowired 将查找被标注的方法的入参类型的 Bean,并调用方法自动注入这些 Bean。

感谢

看云的一本书,不过好像被ban了
Springboot付费书籍

Spring-boot框架常用注解相关推荐

  1. spring boot框架常用的一些玩意儿

    后端 A. maven管理依赖 聚合项目 B. 基础框架 spring boot C. 引入spring cloud微服务提供 版本netfilx 1.注册中心使用nacos Nacos Docker ...

  2. spring boot 的常用注解使用 总结

    附:Spring Boot 官方文档学习(一)入门及使用 见https://www.cnblogs.com/larryzeal/p/5799195.html @RestController和@Requ ...

  3. spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring

    本节主要内容: 1:通过代码演示实现零XML配置spring 2:使用重点注解理解 声明: 本文是<凯哥陪你学系列-框架学习之spring boot框架学习>中spring boot框架学 ...

  4. 详解Spring Boot框架中的@Conditional系列注解

    目录 1. @Conditional 注解 2. Spring boot 扩展 1) @ConditionalOnClass和@ConditionalOnMissingClass注解 2) @Cond ...

  5. 初识Spring Boot框架

    关注公众号[江南一点雨],专注于 Spring Boot+微服务以及前后端分离等全栈技术,定期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货! 前面的铺垫文章已经连着写了 ...

  6. Spring Boot 框架学习笔记(二)(配置文件与数据注入 yaml基本语法 JSR303数据验证 多环境切换 )

    Spring Boot 框架学习笔记(二) 六.appliaction.properties配置与数据注入 6.1 `@Value`注解 测试注入数据 读取输入流 6.2 读取配置文件数据注入 单文件 ...

  7. Spring Boot框架中使用Jackson的处理总结

    1.前言 通常我们在使用Spring Boot框架时,如果没有特别指定接口的序列化类型,则会使用Spring Boot框架默认集成的Jackson框架进行处理,通过Jackson框架将服务端响应的数据 ...

  8. Spring Boot 框架介绍和使用

    本文参考自Spring Boot文档. Spring Boot 简介 Spring框架功能很强大,但是就算是一个很简单的项目,我们也要配置很多东西.因此就有了Spring Boot框架,它的作用很简单 ...

  9. spring boot框架学习2-spring boot核心(1)

    本节主要: 1:解析spring boot入口和@SpringBootApplication源码详解 SpringBootApplication包含: @SpringBootConfiguration ...

  10. Java--SSH,SSM和Spring Boot框架区别优缺点

    一.SSH(Struts + Spring + Hibernate) 1.基本概念 SSH框架是JAVA EE中三种框架所集成,分别是Struts,Spring,Hibernate框架所组成 集成SS ...

最新文章

  1. [渝粤教育] 莆田学院 电机与拖动基础(一) 参考 资料
  2. linux内核imx6,imx6ull之linux内核移植
  3. OpenShift 4 概念 - OpenShift是如何通过ImageStream访问Image的
  4. 数据结构与算法之 树
  5. DevExpress中XtraGrid控件对GridView每行的颜色设置 zt
  6. 第三十八篇、给UITabBar按钮的动画效果
  7. Dijkstra最短路径
  8. 软件测试面试题(2020.6.29)
  9. 赛元SC92F7250单片机开发
  10. 游戏开发:目前主流游戏引擎的分析报告
  11. 【绝对好用】java poi 导入、导出excel(支持xsl、xslx)
  12. 恒温烙铁使用注意事项
  13. stable diffusion文字转图片(教程)
  14. ROS中的roslaunch命令和launch文件(ROS入门学习笔记四)
  15. 图文笔记,带你走进《未来简史》(16-20)
  16. JavaScript学习笔记10
  17. 小黑NLPbaseline成长日记1:Skip_Gram+NEG的pytorch练习
  18. VueJs(1)---快速上手VueJs
  19. 致远项目管理SPM系统产品核心优势(一)
  20. 解决:ParserError: Error tokenizing data. C error: Expected 1 fields in line 16, saw 2

热门文章

  1. openGL在Windows 7(64位操作系统)下的配置小问题
  2. python安装包区别
  3. svn 服务器修复,[版本管理]有惊无险修复svn服务器Invalid filesystem revision number问题...
  4. pyodps中的apply用法
  5. java json中文乱码_JSON数据传输,解决中文乱码
  6. Spark MLlib协同过滤之交替最小二乘法ALS实践
  7. 用 CSS 写一个向右的箭头
  8. c/c++函数 -strtol strtoll strtoul strtoull解读
  9. 2022年我国移动数据安全现状是怎样的?
  10. Windows系统如何多开微信