Loading

SpringBoot注解大总结

Controller层注解

@GetMapping("")

 接受get请求执行注解下的方法(get/delete 请求参数一般拼接到url后面)也可以使用请求体但要规范不能使用请求体

@RequestBody

1.从http中读请求体中的数据 ,底层是HttpServletRequest 获取

2.自动把JSON字符串映射成java中的对象

 @Post/pub

post/pub 请求参数一般放在请求体里面,且以JSON格式进行传输(post插入请求使用)

@RequestMapping("/depts")

 Target->类上/方法上

类上->提取controller中的一个重复的路径

方法上->定义该接口的请求方法,被对应Mapping,PostMapping替代了

@Controller

把一个普通类变成一个servlet 

@RestController

组合注解由@Controller和@ResponseBody组合而成

把一个普通的controller类标记为一个servlet 

@Get/DeleteMapping

 以kv键值对的方式接受请求,也可以用请求体但不建议使用

@ResponseBody

响应把java对象转换成JSON对象 

@RequestParam

1.根据指定的k,获取Http URL中的值 value/name属性

2.可以指定是否必传参数,如果指定必传,前端没传响应的参数->400 required

3.给参数指定默认值 defaultValue默认值属性

@PathVariable

 作用:获取URI路径以/分割的路径变量   列:/{id} 。通过kv值传参和通过/传参在一个项目中尽量只使用一个规范一点

@Validated

添加此注解启动spring-boot-starter-validation数据校验 ,添加在接受前端形参的括号中

DAO层注解

@JsonFormat()

@JsonFormat(pattern = "yyyy年MM月dd日 HH:mm:ss")作用:格式化时间,放在需要被格式化的实体类变量上

 @DateTimeFormat

把请求的字符串时间转换成指定的格式@DateTimeFormat(pattern="yyyy年MM月dd"),前端传空也没问题SpringBoot会判空

@JsonIgnore

加在属性上 springboot 对象转JSON的时候自动忽略掉该值

@JsonIgnoreProperties

加在类上,指定多个需要忽略掉转JSON的属性,值就填属性名就行 

@JsonInclude

根据条件决定是否转JSON(使用:属性是null就不转JSON)

@Param("")

给sql绑定值 

 @Repository

@Repository springboot 提供用来标记DAO层和@Mapper没有区别 (加在类上)

 @NotNull

判空注解spring-boot-starter-validation 加载实体类属性上

 @Length

 判断字符串长度 spring-boot-starter-validation min max设置范围

 @Pattern

设置正则表达式spring-boot-starter-validation regexp设置 

Service层注解

@Service

标记此类为service层注入bean

@Transactional

 自动开启事务,提交事务并且回滚事务,SpringBoot默认RuntimeException才会回滚解决方法就是扩大异常范围(可以加在方法或类上,尽量不要加在类上)

@Transactional(rollbackFor = Exception.class)

其他||共用注解

@SpringBootTest

专门用来初始化springboot环境,进行单元测试 ,在test目录进行单元测试

@Resource

属性注入优先使用@Resource
默认按照Bean名字从容器中获取
默认的springBean名字时类对应的小驼峰

@Configuration

 是配置类的特化注解 组合了@component

@Autowired

一般使用在构造器赋值和set方法赋值时

@AllArgsConstructor

如果一个SpringBean类中值需要注入很多的其他的Bean对象->优先使用@Autowired->基于lombok是心啊构造器注入@AllArgsConstructor(注入的必须时SpringBean对象)

 @ConditionalOnProperty

 如果有该配置才生效没有则不生效

@ConditionalOnProperty(prefix = "zzyl.aliyun", name = {"accessKeyId", "accessKeySecret", "consumerGroupId", "iotInstanceId", "iotInstanceId"})

 @ConditionalOnBean()

当ioc容器有指定bean时才生效

AOP注解

 @Aspect

此注解用于声明,加上@Component定义切面类

@Around

@Around("execution(* com.lu.tlias84.service.impl.*.*(..))")

意思是第一个*是返回值,execution(* com.lu.tlias84.service.impl.*.*(..)意思上对com.lu.tlias84.service.impl包下所有类德所有方法进行增强

  • 环绕通知业务方法

    • 即在被通知增强的业务方法调用前后都执行一段编写的切面方法逻辑

  • 需要给切面方法添加参数ProcedingJointPoint 来调用被增强的业务方法

  • 返回值给Object

@Before

前置通知

即在被通知增强的业务方法执行前先执行切面方法

@After

后置通知

即在被通知增强的业务方法执行后执行切面方法

@AfterReturning

返回后通知

被通知增强的业务方法返回后执行逻辑,有异常不会执行

@AfterThrowing

异常通知

被通知增强的业务方法抛出异常后执行

SpringBoot全局异常处理 

@ControllerAdvice

Controller增强器,给Controller层添加统一的操作或处理

@ResponseBody

返回值自动为json格式

@RestControllerAdvice

组合注解@RestControllerAdvice组合了@ControllerAdvice和@ResponseBody

@ExceptionHandler 

@ExceptionHandler,指定捕获Controller中抛出的指定类型的异常 

@ResponseStatus 

用于指定捕获异常后响应的Http状态码 

SpringBoot配置文件

@Value

配置文件属性映射到java对象的属性 

简单属性映射(只能读八种数据类型外加数组,集合读不了)

 @ConfigurationProperties

> @ConfigurationProperties

prefix指定前缀

多个属性映射

 

@Async

这个注解加载方法上表示开启异步调用 配合@EnableAsync使用

@EnableAsync

表示开启多线程异步调用

posted @ 2024-08-18 16:28  LL。。。  阅读(24)  评论(0)    收藏  举报  来源