spring注解有哪些:分场景全覆盖可直接用
spring注解主要分为组件注册、依赖注入、web请求、事务、配置、AOP六大核心类别,涵盖SpringBoot2.x、3.x主流开发场景,不同注解对应固定开发功能,你可根据代码编写需求直接选用,其中组件注册和web请求注解是日常业务开发使用频次最高的类型,事务注解仅适用于数据库交互业务,静态工具类、无状态工具代码不适用该类注解。
spring组件注册注解
该类注解的核心作用是将普通Java类交给Spring容器管理,自动创建对象并纳入IOC容器,无需手动new对象实例,是Spring开发的基础注解。@Component为通用组件注解,适用于所有非分层通用业务类;@Controller专属web控制层,用于接收前端请求;@Service用于业务逻辑层,封装核心业务代码;@Repository用于数据持久层,对接数据库操作。
@Configuration是配置类专属注解,标记当前类为Spring配置类,可用于创建第三方对象注入容器;@Bean搭配Configuration使用,用于手动注册第三方组件,比如Redis工具类、线程池对象等无法通过组件注解自动注册的类。
spring依赖注入注解
这类注解用于给容器中的对象自动赋值,实现组件之间的依赖关联,大幅减少代码耦合度。@Autowired默认根据类型自动注入对象,是最常用的注入方式,无需手动指定对象名称;@Resource默认根据名称注入,兼容Java原生规范,适合存在多个同类型Bean的场景。
@Value专门用于读取配置文件参数,可获取yml、properties文件中的自定义配置,支持字符串、数字、布尔值等多种数据类型,常用于配置端口、密钥、文件路径等固定参数。
springweb请求注解
web开发中用于映射请求路径、接收前端参数,适配前后端交互的所有场景。@RequestMapping为通用请求映射注解,可匹配GET、POST等所有请求方式;衍生的@GetMapping、@PostMapping分别专属GET、POST请求,语义更清晰,项目开发中优先使用细分注解。
@RequestParam用于接收普通表单参数、URL拼接参数;@PathVariable用于接收路径占位符参数,适配RESTful风格接口;@RequestBody专门接收前端JSON格式请求体,是前后端分离项目的核心参数接收注解。
spring事务与配置注解
@Transactional是Spring声明式事务注解,添加在方法或类上,可实现数据库操作的事务回滚,出现异常时自动撤销数据库修改,有效避免数据不一致问题。该注解仅对public修饰的方法生效,private、protected方法无法触发事务机制,这是开发中高频出错的细节。
@PropertySource用于加载自定义外部配置文件,弥补默认配置文件的参数不足;@Import用于手动导入其他配置类,整合零散的配置逻辑,适配多模块大型项目的配置管理需求。
springAOP核心注解
AOP注解用于实现切面编程,在不修改原有业务代码的前提下,对方法进行增强,常用于日志记录、权限校验、性能监控等通用功能。@Aspect用于标记切面类,定义切面功能载体;@Pointcut用于配置切入点,指定需要增强的目标方法范围。
常用增强注解包含@Before(方法执行前触发)、@After(方法执行后触发)、@Around(包裹方法全程执行,可控制方法执行时机),其中@Around功能最为全面,可实现前置、后置、异常处理等多种效果,但写法相对复杂。
| 注解类别 | 核心作用 | 适用场景 | 使用频次 |
|---|---|---|---|
| 组件注册 | 将类纳入Spring容器 | 所有业务类、配置类注册 | 极高 |
| 依赖注入 | 自动装配组件与参数 | 类之间依赖赋值、读取配置 | 极高 |
| web请求 | 映射接口、接收参数 | 前后端接口开发 | 极高 |
| 事务注解 | 管控数据库事务 | 增删改数据库业务 | 中等 |
| AOP注解 | 增强业务方法 | 通用功能统一处理 | 中等 |
Spring3.0官方开发规范明确,废弃的老式注解不建议在新项目中使用,可有效规避版本兼容报错问题。
