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

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 配置,并且提供了很多便捷的注解来快速构建应用


http://www.kler.cn/a/540510.html

相关文章:

  • 云计算——AWS Solutions Architect – Associate(saa)4.安全组和NACL
  • stm32小白成长为高手的学习步骤和方法
  • 如何使用DeepSeek帮助自己的工作?
  • 【Git】Failed to connect to github.com port 443: Timed out
  • Unity-Mirror网络框架-从入门到精通之LagCompensation示例
  • 项目质量管理体系及保证措施
  • electron中主进程和渲染进程通信3种方式【详细教程】
  • macOS 上部署 RAGFlow
  • 【Hadoop】大数据权限管理工具Ranger2.1.0编译
  • 在spring boot 项目中远程调用时,如果使用subList()方法报错原因分析
  • CNN-GRU卷积神经网络门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)
  • python视频爬虫
  • 定制化APP:开启企业数字化转型新未来
  • 15 大 AWS 服务
  • 比亚迪发布智能化战略,天神之眼开创全民智驾
  • 工厂方法模式详解(Java)
  • Vue 和 React 的生态系统有哪些主要区别
  • Vue 和 React 在性能上的具体差异是什么
  • 服务器绑定 127.0.0.1 和 0.0.0.0 的区别
  • 大模型训练-gpu显卡训练环境搭建
  • ArcGIS Pro批量创建离线服务sd包
  • Kitchen Gadgets
  • Qt:项目文件解析
  • 海云安开发者智能助手(D10)全面接入DeepSeek,赋能开发者安全高效编码新范式
  • JavaScript特效大全:343个动态效果实例教程
  • 【信息系统项目管理师-案例真题】2017下半年案例分析答案和详解