编辑
2025-10-16
Java
00
请注意,本文编写于 51 天前,最后修改于 46 天前,其中某些信息可能已经过时。

目录

一、核心注解
二、分层注解(用于分层结构)
三、依赖注入
四、MVC 与 Web 层
五、配置与属性绑定
六、AOP(面向切面编程)
七、事务管理
八、数据访问(JPA / MyBatis)
九、缓存注解
十、异步与定时任务
十一、安全控制(Spring Security)
十二、测试相关注解
十三、其他常用注解
✨总结

本文整理了 Spring Boot 开发中最常用的注解,涵盖核心配置、MVC 层、事务、AOP、数据访问、缓存、异步任务、安全、测试等方面,快速构建高质量的企业级应用。


一、核心注解

注解说明
@SpringBootApplication标记主类,组合了 @Configuration@EnableAutoConfiguration@ComponentScan
@Configuration标记配置类,替代 XML 配置文件
@EnableAutoConfiguration启用自动配置机制
@ComponentScan指定扫描组件的包路径
@Component通用组件注解,标记类为 Spring 管理的 Bean
@Bean在配置类中定义 Bean
@Lazy延迟初始化 Bean(默认单例在启动时初始化)

二、分层注解(用于分层结构)

注解说明
@Controller标记 MVC 控制器类
@RestController组合 @Controller + @ResponseBody,返回 JSON/XML
@Service标记业务逻辑层类
@Repository标记数据访问层(DAO)类,并自动处理数据库异常

三、依赖注入

注解说明
@Autowired自动注入依赖(按类型匹配)
@Qualifier@Autowired 配合使用,按名称注入
@ResourceJDK 注解,按名称或类型注入
@Value注入配置文件属性(如 @Value("${app.name}")
@Primary当存在多个同类型 Bean 时,指定优先注入的 Bean

四、MVC 与 Web 层

注解说明
@RequestMapping映射 HTTP 请求(URL、方法、参数等)
@GetMapping / @PostMapping / @PutMapping / @DeleteMapping / @PatchMapping对应不同的 HTTP 方法
@ResponseBody将方法返回值作为响应体(非视图)
@RequestBody接收请求体数据(如 JSON)
@PathVariable获取 URL 路径参数(如 /user/{id}
@RequestParam获取请求参数(如 ?name=xxx
@RequestHeader获取请求头信息
@CookieValue获取 Cookie 值
@CrossOrigin允许跨域请求
@ModelAttribute绑定请求参数到模型对象
@SessionAttributes将模型数据存储到 Session
@ResponseStatus指定响应的 HTTP 状态码
@ExceptionHandler处理控制器中的异常
@ControllerAdvice全局异常处理与全局数据绑定

五、配置与属性绑定

注解说明
@ConfigurationProperties将配置文件属性绑定到类
@EnableConfigurationProperties启用指定类的配置属性绑定
@PropertySource加载自定义配置文件
@Profile指定 Bean 在特定环境下生效(如 @Profile("dev")
@Conditional条件化 Bean 创建的通用注解
@ConditionalOnBean / @ConditionalOnMissingBean当存在/不存在指定 Bean 时生效
@ConditionalOnClass / @ConditionalOnMissingClass当类路径存在/不存在时生效
@ConditionalOnProperty当配置属性满足条件时生效

六、AOP(面向切面编程)

注解说明
@Aspect标记类为切面类
@Pointcut定义切入点(如 execution(* com.example.service.*.*(..))
@Before前置通知(方法执行前)
@After后置通知(方法执行后)
@AfterReturning返回后通知(正常返回)
@AfterThrowing异常通知(发生异常后)
@Around环绕通知(可控制目标方法执行)

七、事务管理

注解说明
@Transactional开启事务管理,可配置传播行为与隔离级别
@EnableTransactionManagement启用事务(Spring Boot 默认开启)

八、数据访问(JPA / MyBatis)

注解说明
@Entity标记 JPA 实体类
@Table指定实体类对应的表名
@Id标记主键
@GeneratedValue主键生成策略
@Column指定列名
@Transient忽略字段
@RepositoryDAO 层注解
@Query / @ParamJPA 自定义查询与参数绑定
@MapperMyBatis 映射器接口
@Insert / @Update / @Delete / @SelectMyBatis 注解式 SQL

九、缓存注解

注解说明
@EnableCaching启用缓存功能
@Cacheable标记方法结果可缓存
@CachePut执行方法并更新缓存
@CacheEvict删除缓存
@Caching组合多个缓存操作

十、异步与定时任务

注解说明
@EnableAsync启用异步方法支持
@Async声明方法异步执行
@EnableScheduling启用定时任务支持
@Scheduled定义定时任务(支持 cron 表达式)

十一、安全控制(Spring Security)

注解说明
@EnableWebSecurity启用 Web 安全配置
@PreAuthorize方法执行前进行权限验证
@PostAuthorize方法执行后验证权限
@Secured限定访问角色(如 @Secured("ROLE_ADMIN")

十二、测试相关注解

注解说明
@SpringBootTest启动完整 Spring Boot 测试环境
@TestJUnit 测试方法注解
@MockBean替换 Bean 为 Mock 对象
@AutoConfigureMockMvc自动配置 MockMvc
@DataJpaTest测试 JPA 层组件
@WebMvcTest测试 MVC 控制器(仅加载 Web 层)

十三、其他常用注解

注解说明
@Order指定加载顺序(值越小优先)
@Scope指定 Bean 作用域(singleton、prototype、request、session)
@Deprecated标记过时
@NonNull / @NotNull参数或返回值非空校验
@Size / @Email长度与邮箱格式校验
@Valid / @Validated启用参数校验
@EventListener声明事件监听方法
@EnableFeignClients / @FeignClient启用并定义 Feign 客户端
@LoadBalanced启用 RestTemplate 负载均衡
@RegisterReflectionForBinding注册类支持 JSON 反射绑定
@Slf4jLombok 日志注解
@RequiredArgsConstructor生成包含 final 字段的构造函数
@NoArgsConstructor / @AllArgsConstructor生成无参 / 全参构造函数

✨总结

Spring Boot 通过注解驱动的方式,大幅简化了配置与开发流程。掌握这些常用注解,不仅能写出结构清晰、可维护性高的应用,还能充分发挥 Spring Boot 的自动化与约定优于配置的优势。

本文作者:zjx171

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!