1.(默认情况下,注册到 IoC(Inversion of Control)容器中的 Bean 是单例模式)

//2、获取到容器中所有组件的名字:容器中装了哪些组件; Spring启动会有 很多默认组件
String[] names = ioc . getBeanDefinitionNames();
for (String
name : names] {
System. out . printLn("name = " + name);
//4、获取容器中的组件对象:精确获取某个组件
//组件的四大特性,(名字、类型)、对象、作用域
//组件名字全局唯一:组件名重复了,一定只会给容器中放一个最先声明的哪个。
//小结:
//从容器中获取组件,
// 1)、组件不存在,抛异常: NoSuchBeanDefinitionException
// 2)、组件不唯一,
按照类型只要一个:抛异常: NoUniqueBeanDefinitionException
按照名字只要一个:精确获取到指定对象
/1
多个:返回所有组件的List集合
//3)、组件唯一存在,正确返回。
//
获取bean的三种方式:
* 1、根据bean的id获取
* 2、根据bean的类型获取
* 注意:根据类型获取bean时,要求IOC容器中有且只有一个类型匹配的bean
* 若没有任何一个类型匹配的bean,此时抛出异常:NoSuchBeanDefinitionException
* 若有多个类型匹配的bean,此时抛出异常:NoUniqueBeanDefinitionException
* 3、根据bean的id和类型获取
* 结论:
* 根据类型来获取bean时,在满足bean唯一性的前提下
* 其实只是看:『对象 instanceof 指定的类型』的返回结果
* 只要返回的是true就可以认定为和类型匹配,能够获取到。
* 即通过bean的类型、bean所继承的类的类型、bean所实现的接口的类型都可以获取bean

790

被折叠的 条评论
为什么被折叠?



