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 其他常用注解 配置管理、依赖注入
相关推荐
YuTaoShao几秒前
【LeetCode 热题 100】48. 旋转图像——转置+水平翻转
java·算法·leetcode·职场和发展
ai小鬼头24 分钟前
AIStarter如何助力用户与创作者?Stable Diffusion一键管理教程!
后端·架构·github
Dcs28 分钟前
超强推理不止“大”——手把手教你部署 Mistral Small 3.2 24B 大模型
java
简佐义的博客36 分钟前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang
东阳马生架构39 分钟前
订单初版—1.分布式订单系统的简要设计文档
java
Code blocks1 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins
荔枝吻1 小时前
【沉浸式解决问题】idea开发中mapper类中突然找不到对应实体类
java·intellij-idea·mybatis
snoopyfly~1 小时前
Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
java·服务器·ubuntu
追逐时光者2 小时前
一款开源免费、通用的 WPF 主题控件包
后端·.net