SpringBoot常用注解

本文详细介绍了Spring框架中的关键组件如Bean处理、依赖注入、HTTP请求方法、数据持久化、参数传递、配置文件读取以及测试相关注解的使用。特别关注了SpringBoot的核心注解及其在项目中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Bean处理

1.1 依赖注入

1.1.1 @Autowired

  • 用法: 用在属性、方法上
  • 含义: byType 方式完成自动装配,使用配置好的 Bean,完成属性、方法的组装。当加上(required=false)时,就算找不到 bean 也不报错。

1.2 标注类被Spring容器管理

1.2.1 @Component

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。一般公共方法会使用
这个注解。

1.2.2 @Respository

用于数据持久层,经常标记到DAO类上。

1.2.3 @Service

用于服务层,经常标注到Service类上,常需要注入DAO层。

1.2.4 @Controller

MVC控制层Bean,常需要注入Service层。

1.2.5 @RestController

@RestController 注解,它继承自 @Controller 注解。4.0 之前的版本,Spring MVC 的组件都使用 @Controller 来标识当前类是一个控制器 servlet 。使用这个特性,我们可以在开发 REST 服务的时候
直接使用@RestController。

1.2.6 @Configuration

一般用来声明配置类。

1.2.7 @Scope

声明 Spring Bean 的作用域。

在这里插入图片描述

2. HTTP请求

2.1 @GetMapping

GET请求,从服务器获取特定资源。

2.2 @PostMapping

POST请求,在服务器上创建一个新的资源。

2.3 @PutMapping

PUT请求,更新服务器上的资源。

2.4 @DeleteMapping

DELETE 请求,从服务器删除特定的资源。

在这里插入图片描述

3. 前后端传递参数

3.1 @RequestParam

用在方法的参数前面,获取请求中表单类型的key=value格式的数据。

3.2 @PathVariable

路径变量,参数与大括号里的名字一样要相同。

3.3 @RequestBody

获取请求body中的数据,常用于搭配@PostMapping请求来提交对象数据。

3.4 @ResponseBody

表示该方法的返回结果直接写入HTTP response body中,格式为json。

在这里插入图片描述

4. 读取配置文件

4.1 @value

直接读取各种配置源的属性名。

4.2 @ConfigurationProperties

读取配置信息并与 bean 绑定。

4.3 @PropertySource

指定加载自定义的配置文件。

在这里插入图片描述

5. 参数校验

在这里插入图片描述

6. 统一异常处理

6.1 @ControllerAdvice

该注解定义了全局异常处理类,包含@Component,所以可以被Spring扫描。

6.2 @ExceptionHandler

该注解声明异常处理方法,表示遇到该异常,就执行标注的方法。

在这里插入图片描述

7. JPA数据持久化

7.1 @Entity

声明数据库实体类。

7.2 @Table

设置表名。

7.3 @ld

声明一个字段为主键。

7.4 @GeneratedValue

声明主键的生成策略。

7.5 @Column

声明字段,经常用于属性名和表字段的映射。

7.6 @Transient

指定不需要持久化的字段。

7.7 @Modifying

加在DAO方法上,提示是修改操作。

7.8 @Transactional

作用于类上,表示所有该类的public 方法都配置相同的事务属性信息。
作用于方法上,当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息。

在这里插入图片描述

8. JSON格式处理

8.1 @JsonlgnoreProperties

作用在类上用于过滤掉特定字段,不返回或者不解析。

8.2 @Jsonlgnore

一般用于属性上,作用和上面的@JsonlgnoreProperties一样。

8.3 @JsonFormat

用来格式化 json 数据。

8.4 @JsonUnwrapped

扁平化对象。

在这里插入图片描述

9. 测试处理

9.1 @ActiveProfiles

常作用于测试类上,用于声明生效的 Spring 配置文件。

9.2 @Test

声明一个方法为测试方法。

9.3 @WithMockUser

Spring Security 提供的用来模拟一个真实用户,并且可以赋予权限。

在这里插入图片描述

10. 配置启动

10.1 @SpringBootApplication

SpringBoot 核心注解,主要由 @Configuration、@EnableAutoconfiguration、@ComponentScan 三个注解组成 。

10.2 @Configuration

SpringBoot 提倡基于 Java 的配置,该注解相当于在 xml 中配置 bean。

10.3 @EnableAutoConfiguration

类级别的注解,该注解告诉 SpringBoot 根据添加的 jar 依赖配置 Spring。

10.4 @ComponentScan

标注哪些路径下的类需要被Spring扫描

10.5 @Conditional

  • @ConditionalOnBean:配置了某个特定的Bean
  • @ConditionalOnMissingBean:没有配置特定的Bean
  • @ConditionalOnClass:Classpath里有指定的类
  • @ConditionalOnMissingClass:Classpath里没有指定的类
  • @ConditionalOnExpression:给定的SpEL表达式计算结果为true
  • @ConditionalOnJava:Java的版本匹配特定值或者一个范围值
  • @ConditionalOnIndi:参数中给定的JNDI位置必须存在一个,如果没有给参数,则要有JNDlInitialContext
  • @ConditionalOnProperty:指定的配置属性要有一个明确的值
  • @ConditionalOnResource:Classpath里没有指定的资源
  • @ConditionalOnWebApplication:这是一个Web应用程序
  • @ConditionalOnNotWebApplication:这不是一个Web应用程序

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值