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

Spring @Scope, @Lazy, @DependsOn, @Required, @Lookup

[Q&A] @Scope 引入背景
传统的 Spring 配置中,Bean 的作用域(如 singleton、prototype)只能通过 XML 配置定义,不够直观且与代码分离,提供一种基于注解的方式定义 Bean 的作用域。

[Q&A] @Lazy 引入背景
默认情况下,Spring 容器会在启动时加载所有单例 Bean,这可能导致启动慢、资源占用高,尤其是某些 Bean 并不总是被使用,引入@Lazy允许开发者延迟初始化 Bean,直到第一次被使用。

1、Spring容器在启动时会初始化所有的单例(singleton)Bean,而使用@Lazy后,Bean会在第一次被使用时才进行初始化。
2、用于@Component 类上(非 @Configuration类):该Bean将会被懒加载初始化。
3、用于@Configuration配置类上:该类中所有的@Bean方法都会受到影响,即这些Bean都将被懒加载。

[Q&A] @DependsOn 引入背景
Spring 默认采用自动装配机制,Bean 的初始化顺序通常由依赖关系决定。但在某些复杂场景下,需要显式控制 Bean 的初始化顺序。显式指定某些 Bean 必须在当前 Bean 之前初始化。

[Q&A] @Required 引入背景
早期 Spring 使用 setter 注入时,无法强制要求某个属性必须被注入,容易导致运行时空指针异常。标记某个属性必须被注入,否则抛出异常。

[Q&A] @Lookup 引入背景
在某些场景下,希望每次调用一个方法都能获取一个新的 Bean 实例(如 prototype 作用域 Bean),但直接 new 对象会破坏 Spring 的管理机制。支持从容器中动态获取 Bean,允许 Spring 动态决定返回哪个 Bean 实例。

注解用途是否支持作用域控制是否影响初始化顺序是否支持原型模式是否已弃用引入年份(关联 Spring 版本参考)
@Scope控制Bean作用域✔️✔️Spring 2.0+(约 2006-2007年)
@Lazy延迟初始化✔️(延迟加载)Spring 2.0+(约 2006-2007年)
@DependsOn强制依赖其他Bean✔️(控制顺序)Spring 2.0+(约 2006-2007年)
@Required标记必须注入的属性✔️(Spring 5+)Spring 2.0+(约 2006-2007年)
@Lookup动态获取Bean或覆盖方法实现✔️Spring 2.0+(约 2006-2007年)

典型用法

Spring @Scope 典型使用场景
Spring @Lazy 典型使用场景
Spring @DependsOn 典型使用场景
Spring @Required 典型使用场景
Spring @Lookup 典型使用场景

相关文章:

  • 机器学习核心概念速览
  • Springboot项目的目录结构
  • AI赋能Automa二次开发
  • Spring @Qualifier,@Primary
  • 分布式ID实现方案实战示例总结
  • 【Zephyr 系列 18】分布式传感网络系统设计:从 BLE Mesh 到边缘网关的数据闭环
  • 看安科瑞分布式光伏解决方案如何破解光伏痛点?
  • 机器学习赋能的智能光子学器件系统研究与应用
  • 基于生成对抗网络(GAN)的图像生成与编辑:原理、应用与实践
  • Idea 2025 commit 关闭侧边栏 开启探框
  • SHA-1算法详解:原理、特点与应用
  • OctoPrint公网部署如何实现?3D打印远程控制一键部署过程!
  • 牛市与熊市:市场周期的双面镜
  • 记录下three.js学习过程中不理解问题----材质(material)⑤
  • NLP学习路线图(三十九):对话系统
  • 2025年渗透测试面试题总结-长亭科技[实习]安全服务工程师题目+回答)
  • 如何将文件从 iPhone 传输到闪存驱动器
  • GaussDB分布式数据库调优方法总结:从架构到实践的全链路优化指南
  • 增强现实—Flame: Learning to navigate with multimodal llm in urban environments
  • 安全生产管理是什么?安全生产管理主要管什么?
  • wordpress随机文本/武汉网络seo公司
  • 网站续费/网站建设公司地址在哪
  • 泰安市网站建设公司/适合seo的建站系统
  • 影视网站模板怎么做/长沙seo优化公司
  • 量力商务大厦网站建设/沈阳seo排名外包
  • html5导航网站源码/seo查询友情链接