SpringBoot的常用注解

前言

提示:这里可以添加本文要记录的大概内容:

注解式编程目前在业内广泛使用,这里例举了部分Spring Boot项目中常用的一些注解,结合项目应用,后面还会逐步添加,有需要可以收藏


注解大全

序号注解所属框架作用
1@ComponentScanSpring添加在配置类上的,配置组件扫描,如果配置此注解的value属性,可指定组件扫描的根包(basePackages)
2@ComponentSpring添加在类上,表示当前类是一个组件,但并不能直接确定是哪一种组件
3@ControllerSpring添加在类上,表示当前类是一个组件,建议添加在控制器类上(冗余),可被替代@RestController
4@ServiceSpring添加在类上,表示当前类是一个组件,建议添加在处理业务逻辑的类上
5@RepositorySpring添加在类上,表示当前类是一个组件,建议添加在数据访问层的类上
6@ConfigurationSpring添加在类上,表示当前类是一个配置类
7@ScopeSpring添加在组件类上,或添加在@Bean方法上,通过配置参数prototype将Spring管理此对象调整为“非单例”,不建议使用
8@LazySpring添加在组件类上,或添加在@Bean方法上,将Spring管理此对象调用为“懒加载”,不建议使用
9@PostConstructSpring这是javax.annotation包中的注解,添加在生命周期方法上,表示此方法是“创建后”的方法(初始化方法),一般不用
10@PreDestroySpring这是javax.annotation包中的注解,添加在生命周期方法上,表示此方法是“销毁前”的方法(销毁方法),一般不用
11@AutowiredSpring添加在属性上、方法上、构造方法上,表示Spring框架将为此属性自动装配,或自动调用对应的方法
12@BeanSpring在配置类中,自定义某个方法,其返回值类型就是你需要Spring创建对象的类型,在方法体中自行编写创建对象的代码,并且,在此方法上添加@Bean注解即可
13@QualifierSpring添加在属性上、方法的参数上,与@Autowired匹配使用,当尝试自动装配的数据有多个匹配类型的Spring Bean,但名称并不匹配,可以使用此注解指定使用特定名称的Spring Bean,一般不用
14@ResourceSpring这是javax.annotation包中的注解,添加在属性上,表示Spring框架将为此属性自动装配,当尝试自动装配的数据有多个匹配类型的Spring Bean,可以配置此注解的name属性,用于指定使用特定名称的Spring Bean
15@ResponseBodySpring MVC添加在方法上、控制器类上,表示此方法或此控制器中所有方法在响应时,都是响应正文的
16@RestControllerSpring MVC添加在控制器类上,表示此类是一个控制器类,并且,此类中所有方法在响应时,都是响应正文的,它的元注解中包含@ResponseBody@Controller
17@RequestMappingSpring MVC添加在方法上、控制器类上,主要用于配置请求路径,及某些参数,开发中更多的用于添加在控制器类上,指定请求的父路径。
18@GetMappingSpring MVC添加在方法上,只接收GET方式的请求,主要用于配置请求路径,其它参数的配置与@RequestMapping相同
19@PostMappingSpring MVC添加在方法上,只接收POST方式的请求,主要用于配置请求路径,其它参数的配置与@RequestMapping相同
20@PutMappingSpring MVC添加在方法上,只接收PUT方式的请求,主要用于配置请求路径,其它参数的配置与@RequestMapping相同
21@DeleteMappingSpring MVC添加在方法上,只接收DELETE方式的请求,主要用于配置请求路径,其它参数的配置与@RequestMapping相同
22@RequestBodySpring MVC添加在处理请求的方法的参数上,用于要求客户端使用JSON格式来提交请求参数
23@PathVariableSpring MVC添加在处理请求的方法的参数上,用于接收URL中使用{}格式 占位符对应的参数,如果{}占位符名称与方法的参数名称不同,还可以在此注解中配置{}占位符名称,用于解决名称不一致的问题
24@RequestParamSpring MVC添加在处理请求的方法的非封装类型的参数上,用于指定请求参数名称、限制必须提交、配置默认值
25@ValidatedSpring MVC添加在处理请求的方法的参数上,添加spring-boot-starter-validation依赖,対DTO请求参数进行验证
26@NotNullSpring MVC与@Validated配合使用,作用在数据传输对象类属性上,要求传输数据不能为空。
27@RangeSpring MVC与@Validated配合使用,作用在数据传输对象类属性上,対传输数据范围提出要求。
28@ControllerAdviceSpring MVC添加在全局处理异常类上,此类中的特定方法会在每次处理异常请求时被调用(冗余)
29@RestControllerAdviceSpring MVC添加在全局处理异常类上,此类中的特定方法会在每次处理请求时被调用,并且,如果这些方法会进行响应,会是响应正文的,此注解使用了@ResponseBody@ControllerAdvice作为元注解
30@ExceptionHandlerSpring MVC添加在处理异常的方法上,表示此方法是处理异常的。
31@MapperScanMybatis添加在配置类上,用于指定Mapper接口所在的包,在启动项目时,Mybatis框架会生成这些接口的代理对象。
32@ParamMybatis添加在Mapper接口的抽象方法的参数上,用于指定参数名称,在SQL语句中将可以通过#{}占位符且大括号使用配置的参数名称,来表示SQL语句中的参数,不采用
*@PostConstructJava自带的注解,在方法上加该注解会在项目启动的时候执行该方法,在Mybatis配置类中创建添加拦截器方法
33@EnableSwagger2WebMvcSwagger添加在配置类上,开启生成全局API文档
34@ApiSwagger添加在控制器类上,表示对类的说明,也代表了这个类是swagger2 的资源,参数.tags: 说明该类的作用
35@ApiOperationSwagger添加在方法上,表示一个http 请求访问该方法的操作,参数: value=“方法的用途和作用”
36@ApiOperationSupportSwagger添加在方法上,配置方法的排序位置,参数:order
37@ApiImplicitParamSwagger添加在方法上,表示单独的请求参数,用于対API文档时対请求参数进行说明。
38@ApiImplictParamsSwagger用在请求的方法上,包含多@ApliImplictParam,一般不会用到,当有多个参数时,常进行封装。
39@ApiModelPropertySwagger添加在实体类的属性上,対属性进行描述,参数:value,example,required。
40@ApiIgnoreSwagger添加在类、方法上或方法参数前面,不显示在文档页面上
41@DataLombok添加在POJO类上,要求此类的父类中存在无参数构造方法。帮助生成所有属性对应的Setters & Getters、规范的hashCode()equals()toString()
42@GetterLombokLombok也提供相应的@Setter,@ToString,@EqualsAndHashCode注解,用在无法使用@Data注解的类上使用。
43@Slf4jLombok添加在类上,用于添加日志
44@EnableGlobalMethodSecuritySecurity添加在Security配置类上,用于开启全局方法权限检查,参数:prePostEnabled
45@PreAuthorizeSecurity配置在业务方法上,用于対业务进行授权,只有拥有权限才能调用方法,参数:value = “hasAuthority(“xxx”)”
45+@AuthenticationPrincipalSecurity用于访问控制器中当前经过身份验证的用户。添加在需要方法参数前,封装当前登录用户信息
46@TransactionalSpring开启事务关联管理,建议添加在业务接口上
47@ValueSpring将与配置文件中的键对应的值分配给其带注解的属性
48@EnableSchedulingSpring添加在配置类上,开启计划调度功能
49@ScheduledSpring执行计划任务,添加在方法上,要使用@Scheduled注解,首先需要在启动类添加@EnableScheduling,启用Spring的计划任务执行功能,这样可以在容器中的任何Spring管理的bean上检测@Scheduled注解,执行计划任务
50@JsonFormat JJWT时间格式化注解,添加在时间属性上
51@DubboServiceDubbo注解标记的业务逻辑层实现类,其中的所有方法会注册到Nacos, 其它服务在"订阅"时,就会"发现"当前项目提供的服务(业务逻辑层方法),以便后续在需要时调用
52@EnableDubboDubbo如果当前项目是Dubbo的生产者,必须在当前项目的SpringBoot启动类上添加下面注解,才能正常正确的将当前项目提供的服务注册到Nacos
53 @DubboReferenceDubbo表示当前业务逻辑层代码,要消费其它模块的服务,可以编写当前Nacos中注册的其它模块的业务逻辑层接口,因为在Nacos中注册的是接口的实现类,可以实现自动装配实现类的效果
54@GlobalTransactionalSeata编写@GlobalTransactional标记方法,就相当于设置了分布式事务的起点,当前模块就是分布式事务模型中的TM,最终效果是由当前方法调用的所有远程服务中对数据库的操作要么都执行,要么都不执行
55@SentinelResourceSentinel@SentinelResource注解标记的控制层方法,会在运行时被Sentinel进行管理,在这个控制层方法第一次运行后,可以在Sentinel仪表台界面中设置限流规则,参数:value设置当前方法在仪表台显示的名称 ,blockHandler指定限流时运行方法的配置,fallback 当控制器方法运行发生异常时,运行的降级方法的名称

总结

提示:这里对文章进行总结:
欢迎点赞评论关注收藏

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值