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 获取请求参数 ,用于 GET 或 POST 请求
@PathVariable 获取路径参数 ,例如 /user/{id}
@RequestBody 接收 JSON 请求体 ,用于 POST 或 PUT 请求
@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 的作用域 (singleton、prototype、request、session 等)
@Lazy 懒加载 Bean

总结

分类 主要作用
Spring 核心注解 定义 Bean、配置类、组件扫描等
Spring Boot 相关注解 Spring Boot 自动配置、启动类相关
Spring MVC 相关注解 处理 HTTP 请求、参数、返回值
Spring Data JPA 相关注解 ORM 映射、数据查询
Spring 事务管理 事务控制
Spring Security 相关注解 权限控制、安全认证
Spring AOP 相关注解 切面编程
Spring 其他常用注解 配置管理、依赖注入
相关推荐
晨曦中的暮雨7 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪7 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
Flynt7 小时前
我把微信运动的排行榜和定点推送复刻了一遍:100万次步数更新只要4秒,坑在别处
redis·后端·性能优化
学长毕设8 小时前
基于SpringBoot的青少年编程学习平台系统-附源码
spring boot·学习·青少年编程
文丑颜不良啊8 小时前
LeetCode876~900题目解析
java·leetcode
aloha_7899 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
知守观9 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅9 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
_孤傲_9 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
Wang's Blog10 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友