当前位置: 首页 > news >正文

Spring Boot比Spring多哪些注解?

Spring Boot 相比 Spring 多了很多自动化配置和简化开发的注解,主要包括以下几类:

  1. Spring Boot 启动与自动配置相关
  2. Spring Boot 配置相关
  3. Spring Boot Web 相关
  4. Spring Boot 测试相关
  5. Spring Boot 条件装配相关
  6. Spring Boot 监控与 Actuator 相关

1. Spring Boot 启动与自动配置相关

注解作用
@SpringBootApplicationSpring Boot 入口类,相当于 @Configuration + @EnableAutoConfiguration + @ComponentScan
@EnableAutoConfiguration启用 Spring Boot 自动配置,根据类路径中的依赖自动配置 Bean
@SpringBootConfiguration继承自 @Configuration,用于定义 Spring Boot 配置类
@ComponentScan组件扫描,默认扫描当前类所在的包及其子包

2. Spring Boot 配置相关

注解作用
@ConfigurationProperties(prefix = "xxx")绑定外部配置,用于从 application.ymlapplication.properties 加载配置
@EnableConfigurationProperties使 @ConfigurationProperties 注解的类生效
@PropertySource("classpath:xxx.properties")引入额外的配置文件
@Value("${xxx}")注入配置值
@ImportResource("classpath:xxx.xml")引入 XML 配置文件

3. Spring Boot Web 相关

注解作用
@RestController@Controller + @ResponseBody,返回 JSON 数据的 RESTful API
@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) 的简化版
@ResponseStatus(HttpStatus.OK)指定返回状态码

4. Spring Boot 测试相关

注解作用
@SpringBootTestSpring Boot 测试环境,会自动加载 Spring Boot 上下文
@TestConfiguration测试专用的 @Configuration,避免污染生产配置
@MockBean使用 Mockito 模拟 Bean,替换真实的 Bean
@SpyBean对 Spring 容器中的 Bean 进行部分模拟

5. Spring Boot 条件装配相关

注解作用
@ConditionalOnClass类存在时才生效
@ConditionalOnMissingClass类不存在时才生效
@ConditionalOnBean容器中存在某个 Bean 时才生效
@ConditionalOnMissingBean容器中不存在某个 Bean 时才生效
@ConditionalOnProperty(name="xxx", havingValue="true")指定配置项存在且等于指定值时才生效
@ConditionalOnExpression("${xxx} == true")Spring EL 表达式条件判断
@ConditionalOnWebApplicationWeb 环境下才生效
@ConditionalOnNotWebApplication非 Web 环境下才生效

6. Spring Boot 监控与 Actuator 相关

注解作用
@EnableScheduling开启定时任务
@Scheduled(fixedRate = 5000)定义定时任务,每 5 秒执行一次
@EnableAsync开启异步任务
@Async异步执行方法
@EnableCaching开启缓存
@Cacheable("users")启用缓存
@CacheEvict("users")清除缓存

Spring Boot 比 Spring 多的注解总结

  • 启动与自动配置相关@SpringBootApplication@EnableAutoConfiguration
  • 配置相关@ConfigurationProperties@EnableConfigurationProperties
  • Web 相关@RestController@GetMapping@PostMapping
  • 测试相关@SpringBootTest@MockBean
  • 条件装配相关@ConditionalOnClass@ConditionalOnMissingBean
  • 监控与 Actuator@EnableScheduling@Async@EnableCaching

Spring Boot 最大的区别在于“自动化配置”和“简化开发”,相比于 Spring,减少了大量 XML 配置,并且提供了很多便捷的注解来快速构建应用

相关文章:

  • 漏洞挖掘 | 基于mssql数据库的sql注入
  • Linux(Centos 7.6)命令详解:head
  • 安装并配置 MySQL
  • 大数据、人工智能、云计算、物联网、区块链序言【大数据导论】
  • Repo命令使用
  • 【Elasticsearch】token filter分词过滤器
  • MongoDB 扩缩容实战:涵盖节点配置、服务启动与移除操作
  • Centos7安装Tesseract5.5.0+SpringBoot集成部署(离线版)
  • 初识计算机网络
  • 企语企业管理系iFair(F23.2_a0)在Debian操作系统中的安装
  • 在Mac M1上面安装Miniconda
  • 【AI】在Ubuntu中使用docker对DeepSeek的部署与使用
  • 【Android开发】安卓手机APP拍照并使用机器学习进行OCR文字识别(完整工程资料源码)
  • Python 识别图片和扫描PDF中的文字
  • Elasticsearch+Logstash+Kibana可视化集群部署
  • 将Mac上Python程序的虚拟环境搬到Windows
  • 简述mysql 主从复制原理及其工作过程,配置一主两从并验证
  • 学习threejs,使用HemisphereLight半球光
  • 【DuodooBMS】给PDF附件加“受控”水印的完整Python实现
  • Java内存模型,内存屏障是干嘛的?
  • 碧桂园:砸锅卖铁保交房、持续推进保主体,尽快让公司恢复正常经营
  • 4月证券私募产品备案量创23个月新高,股票策略占比超六成
  • 赵作海因病离世,妻子李素兰希望过平静生活
  • 丰田汽车:美国关税或导致4、5月损失1800亿日元,新财年净利润下滑三成
  • 苹果Safari浏览器上的搜索量首次下降
  • 优化网络营商环境,上海严厉打击涉企网络谣言、黑灰产等违法犯罪