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

Spring Boot比Spring多哪些注解

Spring Boot 是 Spring 框架的扩展,它旨在简化 Spring 应用程序的初始搭建以及开发过程。与 Spring 相比,Spring Boot 提供了许多额外的注解来进一步简化配置和开发工作。以下是 Spring Boot 特有的一些核心注解,这些注解在 Spring 中不可用:

  1. @SpringBootApplication: 这是一个组合注解,用于启动 Spring 应用程序。它包含了 @SpringBootConfiguration@EnableAutoConfiguration@ComponentScan。这个注解通常用于主类上,表明这是一个 Spring Boot 应用。

  2. @EnableAutoConfiguration: 这个注解告诉 Spring Boot 基于类路径中的 jar 包依赖为当前项目进行自动配置。例如,如果 classpath 下存在 HSQLDB,并且数据库驱动的自动配置类(HsqldbDataSourceAutoConfiguration)在 classpath 中可用,则可以自动配置内存数据库。

  3. @ComponentScan: 这个注解用于指定 Spring Boot 应扫描的包,以查找注有 @Component@Service@Controller@Repository 等注解的类,并注册为 Spring 应用上下文中的 Beans。虽然 Spring 也有这个注解,但在 Spring Boot 中它通常与 @SpringBootApplication 结合使用。

  4. @SpringBootConfiguration: 这个注解用于定义 Spring Boot 的配置类,它是 @Configuration 的特化,提供了一些额外的属性,如配置文件的加载等。

  5. @Profile: 这个注解用于指定某些 Bean 只在特定的环境下创建,例如开发环境、测试环境或生产环境。Spring 也有这个注解,但在 Spring Boot 中它被广泛用于支持多环境配置。

  6. @Value: 这个注解在 Spring 中用于注入外部配置的值,但在 Spring Boot 中,它通常与 application.propertiesapplication.yml 中的配置值一起使用,以提供类型安全和更丰富的表达式支持。

  7. @ConfigurationProperties: 这个注解用于将外部配置属性绑定到一个组件上。它允许你将配置属性组织在一个特定的组件中,而不是散落在各个地方。

  8. @ConditionalOn 注解*: 这些注解(如 @ConditionalOnClass@ConditionalOnMissingBean@ConditionalOnProperty 等)用于根据某些条件判断是否创建某个 Bean。这是 Spring Boot 自动配置功能的基础。

  9. @RestController@ResponseBody: 虽然这些注解在 Spring 中也有,但在 Spring Boot 中它们通常一起使用,@RestController@Controller@ResponseBody 的组合,用于创建 RESTful Web 服务。

  10. @Async: 这个注解用于声明一个异步方法,允许在 Spring Boot 应用中轻松实现异步处理。

这些注解是 Spring Boot 提供的简化配置和提高开发效率的关键工具。通过使用这些注解,开发者可以减少样板代码,专注于业务逻辑的实现。

http://www.lryc.cn/news/462192.html

相关文章:

  • 985研一学习日记 - 2024.10.17
  • 牛客SQL29详解 计算用户的平均次日留存率
  • Redis --- 第四讲 --- 常用数据结构 --- 其他类型stream、bitmap……。补充内容scan命令。
  • Java多线程--实现跑马小游戏
  • 扫雷(C 语言)
  • 有源滤波器(一)
  • Flume面试整理-常见的Channel类型
  • 【前端】如何制作一个自己的网页(6)
  • Linux系统性能调优技巧
  • 数学建模算法与应用 第5章 插值与拟合方法
  • 3D Slicer 教程二 ---- 数据集
  • 【建议收藏】30个Java异常的知识点,你能撑到第几个?
  • 【Linux系统编程】环境基础开发工具使用
  • 滚雪球学Redis[6.2讲]:Redis脚本与Lua:深入掌握Redis中的高效编程技巧
  • 上市不到一月,极氪7X交付破万台!论纯电,极氪真“遥遥领先”
  • 【Linux】理解文件系统与软硬链接,观察inode号理解<“软链接是包含路径的新文件“,“硬链接是关于文件名的机制“>,最终明白<什么是真正删除一个文件>
  • Java高并发控制之按业务对象加同步锁
  • Python魔法函数__iter__的用法
  • Redis-缓存一致性
  • SAP学习笔记 - 豆知识13 - Msg 番号 NR751 - Object RF_BELEG R100、番号範囲間隔 49 不存在 FBN1
  • 美摄科技云服务解决方案,方案成熟,接入简单
  • 【bug】paddleocr draw_ocr_box_txt ValueError: incorrect coordinate type
  • python的多线程和多进程
  • 基于SpringBoot+Vue+uniapp的时间管理小程序的详细设计和实现(源码+lw+部署文档+讲解等)
  • HMAC-MD5参数签名算法
  • 【word】文章里的表格边框是双杠
  • 我常用的两个单例模式写法 (继承Mono和不继承Mono的)
  • Android 自定义Toast显示View
  • SCRM呼叫中心高保真Axure原型 源文件分享
  • Ubuntu(Linux)tcpdump使用方法详解