【SpringBoot】SpringBoot常用注解

简介: 【SpringBoot】SpringBoot常用注解

一、前言

首先这里说的SpringBoot常用注解是指在我们开发项目过程中,我们经常使用的注解,包含Spring、SpringBoot、SpringCloud、SpringMVC等这些框架中的注解,而不仅仅是SpringBoot中的注解。

这里只是作一个注解列举,每个注解具体如何使用可以自行搜索查询哈。

二、配置启动相关注解

2.1 @SpringBootApplication

等价于@Configuration、@EnableAutoConfiguration和@ComponentScan三个注解之和。

2.2 @Configuration

SpringBoot 提供基于Java的配置,相当于之前写的 xml中配置的Bean。

2.3 @EnableAutoConfiguration

类级别的注解,开启自动配置,这个注解告诉SpringBoot 根据添加的Jar 依赖猜测你想如何配置Spring。

2.4 @ComponentScan

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

2.5 @Conditional

这个是一个综合的注解,包含了很多子注解。

@ConditionalOnBean:标注配置了某个特定的Bean

@ConditionalOnMissingBean:标注没有配置特定的Bean

@ConditionalOnClass:标注Classpath里有指定的类

@ConditionalOnMissingClass:标注Classpath里没有指定的类

@ConditionalOnExpression:标注给定的SpELl表达式计算结果为true

@ConditionalOnJava:标注Java的版本匹配特定值或者一个范围值

@ConditionalOnJndi:标注参数中给定的JNDI位置必须存在一个,如果没有给参数,则要有JNDI InitialContext

@ConditionalOnOnProperty:标注指定的配置属性要有一个明确的值

@ConditionalOnResource:标注Classpath里没有指定的资源

@ConditionalOnWebApplication:标注这是一个Web应用程序

@ConditionalOnNotWebApplication:标注这不是一个Web应用程序

三、Bean处理相关注解

3.1 依赖注入

@Autowired(属于Spring中的注解)

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

@Resource(属于J2EE的注解)

用法:用在属性上。含义:byName方式完成自动装配,把配置好的Bean拿来用,完成属性的组装。有两个重要属性,分别是name和type。

3.2 标注类被Spring容器管理

@Component

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

@Respository

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

@Service

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

@Controller

用于控制层,MVC的控制层Bean,常注入Service层。

@RestController

与@Controller注解相似,标注这是一个控制层。标注这个注解的类的控制器中会将所有处理器方法的返回值都要直接写入响应体中,而不是将值放到模型中并传递给一个视图以便于渲染。

替代写法:@RestController等同于@Controller+@Response。

@Configuration

一般用来声明配置类。

@Scope

声明Spring Bean的作用域:singleton、prototype、request、session。

四、HTTP请示相关注解

四种常见的HTTP请求类型如下:

4.1 @GetMapping

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

4.2 @PostMapping

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

4.3 @PutMapping

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

4.4 @DeleteMapping

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

这里先列出以上四个,其他的可以自行搜索哦。

五、前后端参数传递相关注解

5.1 @RequestParam

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

5.2 @PathVariable

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

5.3 @RequestBody

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

5.4 @ResponseBody

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

六、读取配置相关注解

6.1 @Value

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

6.2 @ConfigurationProperties

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

6.3 @PropertySource

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

七、参数校验相关注解

7.1 Bean字段验证注解

@NotEmpty

@NotBlank

@Null

@NotNull

@AssertTrue

@AssertFalse

@Pattern(regex=,flag=)

@Email

@Min(value)

@Max(value)

@Size

@DecimalMin

@DecimalMax

@Past

@Future

@Digits

7.2 @Valid

用于标注验证对象的级联属性。

7.3 Validated

Spring提供的注解,于SpringMVC一起使用,标注方法的参数需要检查。

八、统一异常处理相关注解

8.1 @ControllerAdvice

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

8.2 @ExceptionHandler

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

九、JPA数据持久化相关注解

9.1 @Transactional

可以标注在类上,也可以标注在方法上。

标注在类上:表示所有该类的public方法都配置相同的事务属性信息。

标注在方法上:表示该方法配置了事务属性信息。当类和方法上同时标注上@Transactional注解,方法的事务会覆盖类的事务配置信息。

9.2 @Entity

声明数据库实体类。

9.3 @Table

声明表名。

9.4 @Id

声明该字段为主键。

9.5 @GeneratedValue

声明主键的生成策略。

9.6 @Column

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

9.7 @Transient

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

9.8 @Lob

声明该字段为大字段。

9.9 @Enumerated

声明该字段是枚举类型的字段。

9.10 @Modifying

加在DAO方法上,表明是修改操作。

十、JSON格式化处理相关注解

10.1 @JsonFormat

用来格式化json数据。

10.2 @JsonIgnoreProperties

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

10.3 @JsonIgnore

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

10.4 @JsonUnwrapped

声明该字段是扁平化对象。

十一、测试处理相关注解

11.1 @Test

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

11.2 @Transactional

声明测试的方法数据会回滚,避免污染数据。

11.3 @ActiveProfiles

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

11.4 @WithMockUser

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

完结!


相关文章
|
2月前
|
缓存 监控 Java
SpringBoot @Scheduled 注解详解
使用`@Scheduled`注解实现方法周期性执行,支持固定间隔、延迟或Cron表达式触发,基于Spring Task,适用于日志清理、数据同步等定时任务场景。需启用`@EnableScheduling`,注意线程阻塞与分布式重复问题,推荐结合`@Async`异步处理,提升任务调度效率。
417 128
|
2月前
|
XML 安全 Java
使用 Spring 的 @Aspect 和 @Pointcut 注解简化面向方面的编程 (AOP)
面向方面编程(AOP)通过分离横切关注点,如日志、安全和事务,提升代码模块化与可维护性。Spring 提供了对 AOP 的强大支持,核心注解 `@Aspect` 和 `@Pointcut` 使得定义切面与切入点变得简洁直观。`@Aspect` 标记切面类,集中处理通用逻辑;`@Pointcut` 则通过表达式定义通知的应用位置,提高代码可读性与复用性。二者结合,使开发者能清晰划分业务逻辑与辅助功能,简化维护并提升系统灵活性。Spring AOP 借助代理机制实现运行时织入,与 Spring 容器无缝集成,支持依赖注入与声明式配置,是构建清晰、高内聚应用的理想选择。
344 0
|
2月前
|
Java 测试技术 API
将 Spring 的 @Embedded 和 @Embeddable 注解与 JPA 结合使用的指南
Spring的@Embedded和@Embeddable注解简化了JPA中复杂对象的管理,允许将对象直接嵌入实体,减少冗余表与连接操作,提升数据库设计效率。本文详解其用法、优势及适用场景。
249 126
|
3月前
|
XML JSON Java
Spring框架中常见注解的使用规则与最佳实践
本文介绍了Spring框架中常见注解的使用规则与最佳实践,重点对比了URL参数与表单参数的区别,并详细说明了@RequestParam、@PathVariable、@RequestBody等注解的应用场景。同时通过表格和案例分析,帮助开发者正确选择参数绑定方式,避免常见误区,提升代码的可读性与安全性。
|
22天前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
194 2
|
2月前
|
XML Java 数据格式
常用SpringBoot注解汇总与用法说明
这些注解的使用和组合是Spring Boot快速开发和微服务实现的基础,通过它们,可以有效地指导Spring容器进行类发现、自动装配、配置、代理和管理等核心功能。开发者应当根据项目实际需求,运用这些注解来优化代码结构和服务逻辑。
224 12
|
2月前
|
Java 测试技术 数据库
使用Spring的@Retryable注解进行自动重试
在现代软件开发中,容错性和弹性至关重要。Spring框架提供的`@Retryable`注解为处理瞬时故障提供了一种声明式、可配置的重试机制,使开发者能够以简洁的方式增强应用的自我恢复能力。本文深入解析了`@Retryable`的使用方法及其参数配置,并结合`@Recover`实现失败回退策略,帮助构建更健壮、可靠的应用程序。
193 1
使用Spring的@Retryable注解进行自动重试
|
2月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
129 0
探索Spring Boot的@Conditional注解的上下文配置
|
2月前
|
智能设计 Java 测试技术
Spring中最大化@Lazy注解,实现资源高效利用
本文深入探讨了 Spring 框架中的 `@Lazy` 注解,介绍了其在资源管理和性能优化中的作用。通过延迟初始化 Bean,`@Lazy` 可显著提升应用启动速度,合理利用系统资源,并增强对 Bean 生命周期的控制。文章还分析了 `@Lazy` 的工作机制、使用场景、最佳实践以及常见陷阱与解决方案,帮助开发者更高效地构建可扩展、高性能的 Spring 应用程序。
Spring中最大化@Lazy注解,实现资源高效利用

热门文章

最新文章

下一篇
开通oss服务