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
等