spring之getBeanByType探究

手机软件开发 2024-9-26 05:11:40 78 0 来自 中国
前言

spring容器获取bean的方式紧张有两种,即byName和byType
byName方式相对简朴,即Object getBean(String name),通过beanName获取,由于容器中存储的就是一个beanName->bean实体的映射,假如没有创建,则通过beanName查找bean界说,通过bean界说去创建即可
而byType,即T getBean(Class<T> requiredType),则复杂一点,由于不管是bean界说容器还是bean容器存储情势都是以beanName为key的map,以是它的获取方式肯定要多一步type->name的转换
源码

着实固然容器的key是beanName,但想一下getByType并不难实现,只要循环bean界说看看哪些bean的class是所查找的type,获取到对应的beanName,调用getByName就办理了
着实源码也正是云云,跟一下源码(以下代码省略了一些支线逻辑)
getBeanByType
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 18:13, Processed in 0.256271 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表