核心注解

1. @SpringBootApplication

主要用于开启自动配置,它也是一个组合注解,主要组合了 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan

2. @EnableAutoConfiguration

该注解组合了 @Import 注解,@Import 注解导入了 EnableAutoCofigurationImportSelector 类,它使用 SpringFactoriesLoader.loaderFactoryNames 方法把 spring-boot-autoconfigure.jar/META-INF/spring.factories 中的每一个 xxxAutoConfiguration 文件都加载到 IOC 容器,实现自动配置

3. @SpringBootConfiguration

@SpringBootConfiguration 注解继承自 @Configuration,二者功能基本一致,标注当前类是配置类

4. @ComponentScan

自动扫描并加载符合条件的组件,如 @Component、@Controller、@Service、@Repository 等或者 bean 定义,最终将这些 Bean 加载到 IOC 容器

Bean 相关

1. @Controller

应用于控制层,DispatcherServlet 会自动扫描此注解的类,将 web 请求映射到注解 @RequestMapping 的方法上

2. @Service

应用于业务逻辑层

3. @Reponsitory

应用于数据访问层(dao)

4. @Component

表示带有该注解的类是一个组件,可被 SpringBoot 扫描并注入 IOC 容器

5. @Configuration

表示带有该注解的类是一个配置类,通常与 @Bean 结合使用,@Configuration 继承了 @Component,因此也能被 SpringBoot 扫描并处理

6. @Bean

@Configuration 注解标识的类,使用 @Bean 注解一个可返回 Bean 的方法,Spring 会将这个 Bean 对象放入 IOC 容器

依赖注入相关

1. @Autowired

可作用在属性、方法和构造器,实现 Bean 的自动注入,默认根据类型注入

2. @Resource

作用同 @Autowired,默认通过名称注入

3. @Qualifier

如果容器中有多个相同类型的 bean,仅仅靠 @Autowired 不足以让 Spring 知道到底要注入哪个 bean,使用 @Qualifier 并指定名称可以帮助确认注入哪个 bean

4. @Value

用于注入基本类型和 String 类型

WEB 相关

1. @RequestMapping

映射 web 请求,可以注解在类和方法上,@GetMapping 和 @PostMapping 是 @RequestMapping 的两种特例,一个处理 get 请求,一个处理 post 请求

2. @RequestParam

获取请求参数,示例如下:

// http://localhost:8080/api/test1?name=liu
@RequestMapping("/test1")
@ResponseBody
public String test1(@RequestParam("name")String name1){
System.out.println(name1);
return name1;
}

3. @PathVariable

获取路径参数,示例如下:

@RequestMapping(value = "user/{username}")
public String test(@PathVariable(value="username") String username) {
return "user"+username;
}

4. @RequestBody

通过 HttpMessageConverter 读取 Request Body 并反序列化为 Object,比如直接以 String 接收前端传过来的 json 数据

5. @ResponseBody

将返回值放在 response 体内,返回的是数据而不是页面,在异步请求返回 json 数据时使用

AOP 相关

1. @Aspect

声明一个切面

2. @PointCut

声明切点,即定义拦截规则,确定有哪些方法会被切入

3. @Before

前置通知,在原方法前执行

4. @After

后置通知,在原方法后执行

5. @Around

环绕通知,原方法执行前执行一次,原方法执行后再执行一次

其他注解

1. @Transactional

声明事务

2. @ControllerAdvice

作用在类上,继承了 @Component,因此也能被 SpringBoot 扫描并处理,提供对 Controller 类的拦截功能,配合 @ExceptionHandler、@InitBinder、@ModelAttribute 等注解可实现全局异常处理,全局参数绑定,请求参数预处理等功能

3. @Async

作用在方法,表示这是一个异步方法

4. @EnableAsync

注解在配置类,开启异步任务支持

5. @Scheduled

注解在方法,声明该方法是计划任务

6. @EnableScheduling

注解在配置类,开启对计划任务的支持

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

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

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

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

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

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

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

  4. Spring/SpringBoot常用注解总结

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

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

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

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

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

  7. SpringBoot常用注解大全

    常用注解概览 这里整理了一张SpringBoot常用注解的思维导图,本文主要讲解这些注解的用法. 组件相关注解 @ComponentScan 默认扫描当前包及其子包下面被@component,@Con ...

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

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

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

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

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

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

随机推荐

  1. NC20259 [SCOI2007]降雨量

    题目链接 题目 题目描述 我们常常会说这样的话:"X年是自Y年以来降雨量最多的".它的含义是X年的降雨量不超过Y年,且对于任意 Y<Z<X,Z年的降雨量严格小于X年. ...

  2. 【Unity3D】碰撞体组件Collider

    1 前言 ​ Unity3D 中碰撞体(Collider)组件用于检测运动的物体之间是否发生碰撞,也可以作为触发器使用.产生碰撞的条件是: 2 个游戏对象都有 Collider 至少有一个游戏对象有 ...

  3. 多线程系列(四) -volatile关键字使用详解

    一.简介 在上篇文章中,我们介绍到在多线程环境下,如果编程不当,可能会出现程序运行结果混乱的问题. 出现这个原因主要是,JMM 中主内存和线程工作内存的数据不一致,以及多个线程执行时无序,共同导致的结 ...

  4. error C2039: "function": 不是 "std" 的成员的解决方法

    这个错误通过某度没找到合适的解决方案,故记录下来 其实如果使用 google 搜索错误的英文关键词,大概第一条就是解决问题的链接 Large number of "'function' is ...

  5. 突破Windows的极限

    偶然碰到这类技术博客,甚感欣慰,但奈何技术水平达不到,很多都难以理解,故记录在此,用作日后学习. 国内有类似的中文翻译,比如:突破Windows极限:物理内存 但是外文链接已经失效,看不到原汁原味的英 ...

  6. Golang微服务框架go-kratos分析:框架架构分析

    一.kratos设计理念 这里主要讲解 kratos v2 的设计理念. kratos 框架制定接口规范,然后通过插件来实现具体需求,实现自由定制.可插拔的微服务框架. 我们既可以选择 kratos ...

  7. 项目实战:Qt+OSG三维2D文字实时效果查看工具

    需求   OSG三维中2D文字的基本属性较多,方便实时查看效果,并出对应文本代码.   Demo      工具下载地址   CSDN免积分下载地址:https://download.csdn.net ...

  8. 面试官:说一下红锁RedLock的实现原理?

    RedLock 是一种分布式锁的实现算法,由 Redis 的作者 Salvatore Sanfilippo(也称为 Antirez)提出,主要用于解决在分布式系统中实现可靠锁的问题.在 Redis 单 ...

  9. 【LeetCode贪心#02】摆动序列,麻了

    摆动序列 力扣题目链接(opens new window) 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动 ...

  10. 深入解析:AntSK 0.1.7版本的技术革新与多模型管理策略

    在信息技术快速迭代的当下,.Net生态中的AntSK项目凭借其前沿的AI知识库和智能体技术,已经吸引了广大开发者的关注和参与.今天,我要给大家介绍的主角,AntSK 0.1.7版本,无疑将是这个开源项 ...