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 其他常用注解 配置管理、依赖注入
相关推荐
紫穹7 分钟前
009.LangChain 手动记忆全流程
后端·ai编程
程序员皮皮林10 分钟前
Java 25 正式发布:更简洁、更高效、更现代!
java·开发语言·python
好家伙VCC12 分钟前
**发散创新:AI绘画编程探索与实践**随着人工智能技术的飞速发展,AI绘
java·人工智能·python·ai作画
勇者无畏40413 分钟前
基于 Spring AI Alibaba 搭建 Text-To-SQL 智能系统(前置介绍)
java·后端·spring·prompt·embedding
练习时长一年13 分钟前
IDEA开发常用快捷键总结
java·ide·intellij-idea
温柔532919 分钟前
仓颉语言异常捕获机制深度解析
java·服务器·前端
AronTing23 分钟前
2025阿里P6 Java后端面试全攻略:八大模块深度解析
后端·面试
运维李哥不背锅29 分钟前
Ansible 的变量与模板:实现更灵活的自动化配置
java·自动化·ansible
信码由缰33 分钟前
Java 21 虚拟线程 vs 缓存线程池与固定线程池
java
用户685453759776936 分钟前
📈 提升系统吞吐量实战:从1000到10万QPS的飞跃!
后端