Spring中获取bean的三种方式
* 获取bean的三种方式:
* 1)根据bean的id获取
* 2)根据bean的类型获取(最常用)
* 注意:
* 根据类型获取bean时,
* 要求IOC容器中有且只有一个类型匹配的bean
* 若没有一个类型匹配的bean,此时抛出异常:NoSuchBeanDefinitionException
* 若有多个类型匹配的bean,此时抛出异常:NoUniqueBeanDefinitionException
* 3)根据bean的id和类型获取
* 如果组件类实现了接口,根据接口类型可以获取 bean 吗?
* 可以,前提是bean唯一
* 如果一个接口有多个实现类,这些实现类都配置了 bean,根据接口类型可以获取 bean 吗?
* 不行,因为bean不唯一
* 结论
* 根据类型来获取bean时,在满足bean唯一性的前提下
* 其实只是看:『对象 instanceof 指定的类型』的返回结果,
* 只要返回的是true就可以认定为和类型匹配,能够获取到。
* 即通过bean的类型,bean所继承的类型,bean所实现接口的类型都可以获取bean对象
*
* 当接口实现了该类型,可以通过该接口来获取bean
* 在ioc中配置一个bean后,可通过其继承的父类和所实现的接口来获取bean(要求bean的类型唯一)
* 当Student类实现了Person接口时,Person(就可以兼容匹配student)
* bean的实现其实本质就是反射其无参构造
分类:
spring学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)