SpringBoot 常用注解大全
SpringBoot 常用注解大全
一、核心注解
1. 启动类注解
@SpringBootApplication:组合注解,包含以下三个注解
@Configuration:标记该类为配置类
@EnableAutoConfiguration:启用自动配置
@ComponentScan:组件扫描
2. 配置相关
@Configuration:声明一个类为配置类
@Bean:声明一个方法返回的对象作为Spring管理的Bean
@PropertySource:指定配置文件位置
@ConfigurationProperties:将配置文件属性绑定到Bean
@Value:注入单个属性值
二、Web开发注解
1. 控制器相关
@RestController:组合注解,包含@Controller和@ResponseBody
@Controller:标记类为控制器
@RequestMapping:映射请求路径
@GetMapping/@PostMapping/@PutMapping/@DeleteMapping:特定HTTP方法映射
@PathVariable:获取URL路径中的变量
@RequestParam:获取请求参数
@RequestBody:获取请求体内容并转换为对象
@ResponseBody:将方法返回值作为响应体
2. 请求/响应处理
@RequestHeader:获取请求头信息
@CookieValue:获取Cookie值
@ModelAttribute:绑定请求参数到模型对象
@CrossOrigin:解决跨域问题
三、数据访问注解
1. JPA相关
@Entity:标记为JPA实体类
@Table:指定实体对应的表名
@Id:标记主键字段
@GeneratedValue:指定主键生成策略
@Column:指定字段与列的映射
@OneToMany/@ManyToOne/@ManyToMany/@OneToOne:关联关系
@Repository:标记数据访问组件
2. MyBatis相关
@Mapper:标记MyBatis的Mapper接口
@Insert/@Select/@Update/@Delete:SQL操作注解
四、依赖注入相关
@Autowired:自动注入依赖(按类型)
@Qualifier:按名称指定注入的Bean
@Resource:JDK提供的依赖注入(可按名称)
@Inject:JSR-330标准注入注解
五、事务管理
@Transactional:声明事务
propagation:传播行为
isolation:隔离级别
timeout:超时时间
readOnly:是否只读
rollbackFor/rollbackForClassName:指定回滚的异常类型
noRollbackFor/noRollbackForClassName:指定不回滚的异常类型
六、AOP相关
@Aspect:声明切面类
@Pointcut:定义切点表达式
@Before:前置通知
@After:后置通知
@AfterReturning:返回后通知
@AfterThrowing:异常通知
@Around:环绕通知
七、测试相关
@SpringBootTest:SpringBoot测试注解
@Test:标记测试方法
@MockBean:模拟Bean
@DataJpaTest:JPA测试切片
@WebMvcTest:Web MVC测试切片
八、定时任务
@EnableScheduling:启用定时任务
@Scheduled:声明定时任务方法
cron:cron表达式
fixedRate:固定速率执行
fixedDelay:固定延迟执行
九、缓存相关
@EnableCaching:启用缓存
@Cacheable:缓存方法结果
@CachePut:更新缓存
@CacheEvict:清除缓存
@Caching:组合多个缓存操作
十、验证相关
@Valid:启用参数验证
@Validated:分组验证
@NotNull:非空校验
@Size:大小校验
@Min/@Max:最小/最大值校验
@Pattern:正则校验
@Email:邮箱格式校验
十一、异步处理
@EnableAsync:启用异步处理
@Async:标记异步方法
十二、消息队列
@EnableRabbit:启用RabbitMQ
@RabbitListener:监听队列消息
@RabbitHandler:处理消息的方法
十三、安全相关
@EnableWebSecurity:启用Web安全
@PreAuthorize:方法执行前权限检查
@PostAuthorize:方法执行后权限检查
@Secured:角色权限检查
十四、Swagger文档
@Api:标记类为Swagger资源
@ApiOperation:接口说明
@ApiParam:参数说明
@ApiModel:模型说明
@ApiModelProperty:模型属性说明
十五、其他常用注解
@Component:通用组件注解
@Service:业务层组件
@Repository:数据访问层组件
@Scope:指定Bean的作用域
@Primary:优先注入的Bean
@Lazy:延迟初始化
@Profile:指定环境配置
@Conditional:条件化Bean创建
十六、组合注解
@SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan
@RestController = @Controller + @ResponseBody
@SpringBootTest = @BootstrapWith + @ExtendWith + @TestConfiguration等