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 其他常用注解 配置管理、依赖注入
相关推荐
苏三说技术4 小时前
LangChain4j 和 LangGraph4j,哪个更好?
后端
ServBay5 小时前
7 个AI开发中真正用得上的 MCP Server,配合Claude Code食用效果更佳
后端·claude·mcp
妙码生花6 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
用户6757049885026 小时前
Go 语言里判断字符串为空,90% 的人都写错了!
后端·go
Flittly6 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
用户6757049885026 小时前
Go 进阶必修:90% 的人都没用对的“表驱动法”
后端·go
小兔崽子去哪了6 小时前
Java 生成二维码解决方案
java·后端
苍何6 小时前
懂事的 Agent 已经开始自己看屏幕干活了,效率起飞!
后端
掘金码甲哥7 小时前
1分钟买不了吃亏系列: nginx动态域名解析
后端