Spring Boot的常用注解

Spring Boot 常用注解 主要分为以下几类:

  1. Spring 核心注解
  2. Spring Boot 相关注解
  3. Spring MVC 相关注解
  4. Spring Data JPA 相关注解
  5. Spring 事务管理
  6. Spring Security 相关注解
  7. Spring AOP 相关注解
  8. Spring 其他常用注解

下面是详细分类和表格展示👇:


1. Spring 核心注解

注解 说明
@Component 标注通用组件,Spring 容器会自动扫描并注册为 Bean
@Service 标注服务层组件 ,作用和 @Component 相同,但语义更明确
@Repository 标注持久层(DAO)组件,主要用于数据访问层,Spring 还会对其异常进行转换
@Controller 标注控制层组件,用于 MVC Controller
@RestController @Controller + @ResponseBody,用于返回 JSON 数据的 RESTful API
@Configuration 标注配置类,可替代 XML 配置文件
@Bean @Configuration 类中使用,用于手动定义 Bean
@ComponentScan 指定 Spring 自动扫描的包路径,默认扫描当前包及其子包

2. Spring Boot 相关注解

注解 说明
@SpringBootApplication Spring Boot 核心注解,包含 @Configuration@EnableAutoConfiguration@ComponentScan
@EnableAutoConfiguration 自动配置,根据类路径下的依赖自动配置 Spring Boot 应用
@ConditionalOnClass 条件加载,当指定类存在时才进行 Bean 的自动配置
@ConditionalOnMissingBean 条件加载 ,当容器中不存在指定 Bean 时才创建
@SpringBootTest 用于测试 Spring Boot 应用
@EnableConfigurationProperties 使 @ConfigurationProperties 注解的类生效

3. Spring MVC 相关注解

注解 说明
@RequestMapping 映射请求路径,可以用于类或方法级别
@GetMapping @RequestMapping(method = RequestMethod.GET) 的缩写
@PostMapping @RequestMapping(method = RequestMethod.POST) 的缩写
@PutMapping @RequestMapping(method = RequestMethod.PUT) 的缩写
@DeleteMapping @RequestMapping(method = RequestMethod.DELETE) 的缩写
@PatchMapping @RequestMapping(method = RequestMethod.PATCH) 的缩写
@RequestParam 获取请求参数 ,用于 GETPOST 请求
@PathVariable 获取路径参数 ,例如 /user/{id}
@RequestBody 接收 JSON 请求体 ,用于 POSTPUT 请求
@ResponseBody 将返回值转换为 JSON,返回 JSON 格式数据

4. Spring Data JPA 相关注解

注解 说明
@Entity 标识实体类,与数据库表映射
@Table 指定表名,如果不指定,默认使用类名
@Id 标识主键
@GeneratedValue 自动生成主键 ,可指定策略 (AUTO, IDENTITY, SEQUENCE, TABLE)
@Column 指定数据库字段名,如果不指定,默认使用属性名
@OneToOne 一对一 关联关系
@OneToMany 一对多 关联关系
@ManyToOne 多对一 关联关系
@ManyToMany 多对多 关联关系
@Query 自定义 SQL 查询
@Transactional 事务管理(见下文)

5. Spring 事务管理

注解 说明
@Transactional 声明事务,可以加在类或方法上
@EnableTransactionManagement 启用事务管理

6. Spring Security 相关注解

注解 说明
@EnableWebSecurity 开启 Spring Security
@EnableGlobalMethodSecurity 启用方法级安全
@PreAuthorize 方法级权限控制 ,如 @PreAuthorize("hasRole('ADMIN')")
@Secured 方法级安全控制 ,如 @Secured({"ROLE_ADMIN"})
@RolesAllowed 方法级安全控制 ,等同于 @Secured

7. Spring AOP 相关注解

注解 说明
@Aspect 定义 AOP 切面
@Pointcut 定义切点
@Before 前置通知
@After 后置通知
@AfterReturning 返回通知
@AfterThrowing 异常通知
@Around 环绕通知

8. Spring 其他常用注解

注解 说明
@Value 注入配置值
@PropertySource 引入外部配置文件
@Autowired 自动注入 Bean
@Qualifier 指定 Bean 名称 进行注入
@Primary 设置多个 Bean 的优先级
@Scope 指定 Bean 的作用域singletonprototyperequestsession 等)
@Lazy 懒加载 Bean

总结

分类 主要作用
Spring 核心注解 定义 Bean、配置类、组件扫描等
Spring Boot 相关注解 Spring Boot 自动配置、启动类相关
Spring MVC 相关注解 处理 HTTP 请求、参数、返回值
Spring Data JPA 相关注解 ORM 映射、数据查询
Spring 事务管理 事务控制
Spring Security 相关注解 权限控制、安全认证
Spring AOP 相关注解 切面编程
Spring 其他常用注解 配置管理、依赖注入
相关推荐
Coder_Boy_1 分钟前
业务导向型技术日志首日记录(业务中使用的技术栈)
java·驱动开发·微服务
码事漫谈17 分钟前
国产时序数据库崛起:金仓凭什么在复杂场景中碾压InfluxDB
后端
上进小菜猪23 分钟前
当时序数据不再“只是时间”:金仓数据库如何在复杂场景中拉开与 InfluxDB 的差距
后端
盖世英雄酱581361 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端
济南壹软网络科技有限公司1 小时前
企业级盲盒系统:Java高并发架构在多元化抽奖电商中的设计与实践
java·架构·开源源码·盲盒源码·盲盒h5·盲盒app
廋到被风吹走1 小时前
【Java】常用设计模式及应用场景详解
java·开发语言·设计模式
一条可有可无的咸鱼1 小时前
企业招聘信息,企业资讯进行公示
java·vue.js·spring boot·uni-app
程序猿DD2 小时前
JUnit 5 中的 @ClassTemplate 实战指南
java·后端
爱吃山竹的大肚肚2 小时前
EasyPOI 大数据导出
java·linux·windows
Victor3562 小时前
Netty(14)如何处理Netty中的异常和错误?
后端