首页 > 其他分享 >SpringBoot 常用注解总结

SpringBoot 常用注解总结

时间:2024-03-27 11:16:13浏览次数:26  
标签:总结 RequestMapping SpringBoot Bean 注解 方法 String

核心注解

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

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

标签:总结,RequestMapping,SpringBoot,Bean,注解,方法,String
From: https://www.cnblogs.com/Yee-Q/p/18096639

相关文章

  • ANR问题分析总结
    前言ANR(ApplicationNotResponding)应用程序无响应。如果你应用程序在UI线程被阻塞太长时间,就会出现ANR,通常出现ANR,系统会弹出一个提示提示框,让用户知道,该程序正在被阻塞,是否继续等待还是关闭。ANR类型出现ANR的一般有以下几种类型:类型说明logcat日志关键字KeyDis......
  • 3.27每日总结
    某公司欲建设一个房屋租赁服务系统,统一管理房主和租赁者的信息,提供快捷的租赁服务。本系统的主要功能描述如下:1.登记房主信息。记录房主的姓名、住址、身份证号和联系电话等信息,并写入房主信息文件。2.登记房屋信息。记录房屋的地址、房屋类型(如平房、带阳台的楼房、独立式住......
  • 基于SpringBoot+Vue的医院急诊系统
    运行演示:运行演示跳转开发语言:JavaJDK版本:JDK1.8(或11)服务器:tomcat数据库:mysql 5.6/5.7(或8.0)数据库工具:Navicat开发软件:idea依赖管理包:Maven代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、......
  • 基于SpringBoot+Vue的商务邮箱安全系统
    运行演示:运行演示跳转开发语言:JavaJDK版本:JDK1.8(或11)服务器:tomcat数据库:mysql 5.6/5.7(或8.0)数据库工具:Navicat开发软件:idea依赖管理包:Maven代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、......
  • SpringBoot+Vue的酒店管理系统
    运行演示:运行演示跳转开发语言:Java框架:ssm + vueJDK版本:JDK1.8(或11)服务器:tomcat数据库:mysql 5.6/5.7(或8.0)数据库工具:Navicat开发软件:idea依赖管理包:Maven代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~如果对系统的中的某些部分感到不合适可提供修......
  • 蓝桥杯练习题总结(三)线性dp题(摆花、数字三角形加强版)
    目录 一、摆花思路一: 确定状态:初始化:思路二:确定状态:初始化:循环遍历: 状态转移方程: 二、数字三角形加强版一、摆花题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了......
  • 面向对象【Annotation注解】
    文章目录注解概述注解与注释常见的Annotation最基本的注解使用@Override@Override@SuppressWarnings元注解@Retention@Target@Documented@Inherited自定义注解格式定义使用注解概述注解(Annotation)是从JDK5.0开始引入,以“@注解......
  • 今日总结
    在开始编写爬虫程序之前,我们需要先分析目标网站的结构和数据。在本文中,我们选择抓取京东商城的商品信息、价格、评论等数据。1.商品信息商城的商品信息包括商品名称、商品编号、商品分类、商品品牌、商品型号、商品规格、商品产地、商品重量、商品包装等信息。这些信息可以在商品......
  • Div4 VP总结
    CodeforcesRound799(Div.4)E(最长子区间)基本思路求满足s的最长子区间。错误思路分析想用双指针左右贪心模拟题目要求删前或后的数(但在面对前后两个相等的时候,删前删后没有无后效性)简单暴力枚举子区间长度(显然在n=1e5的时候t了)正确思路虽然也是暴力枚举子区间,但有做......
  • MySQL大总结(1)
    1.关系型数据库的特点     1、使用表来存储数据,格式统一,便于维护。2、使用SQL语句操作数据库,标准统一,使用方便。3、数据存储在磁盘中,相对安全。2.DBMS、数据库和表的关系?简言之,先有DBMS,之后有数据库,再有表,每个表中再有数据,具体如下图所示。3.以下关于连接My......