第七章:Spring IoC 依赖来源(2)

本文探讨了Spring框架中依赖来源的三种主要形式:单例对象、非Spring容器管理对象及外部化配置,并分析了各自的注册方式及限制条件。此外还解答了关于依赖注入与查找的区别、单例对象注册时机及具体依赖来源等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@[TOC](第七章:Spring IoC 依赖来源(2))

1. 单例对象作为依赖来源

• 要素
• 来源:外部普通 Java 对象(不一定是 POJO) • 注册:SingletonBeanRegistry#registerSingleton
• 限制
• 无生命周期管理
• 无法实现延迟初始化 Bean

2. 非 Spring 容器管理对象作为依赖来源

• 要素
• 注册:ConfigurableListableBeanFactory#registerResolvableDependency
• 限制
• 无生命周期管理
• 无法实现延迟初始化 Bean
• 无法通过依赖查找

3. 外部化配置作为依赖来源

• 要素
• 类型:非常规 Spring 对象依赖来源
• 限制
• 无生命周期管理
• 无法实现延迟初始化 Bean
• 无法通过依赖查找

注入和查找的依赖来源是否相同?

答:否,依赖查找的来源仅限于 Spring BeanDefinition 以及单例对
象,而依赖注入的来源还包括 Resolvable Dependency 以及
@Value 所标注的外部化配置

单例对象能在 IoC 容器启动后注册吗?

答:可以的,单例对象的注册与 BeanDefinition 不同,BeanDefinition 会 被 ConfigurableListableBeanFactory#freezeConfiguration() 方法影响,
从而冻结注册,单例对象则没有这个限制。

Spring 依赖注入的来源有哪些?

答:
Spring BeanDefinition
单例对象
Resolvable Dependency
@Value 外部化配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值