容器
# 容器
- 创建容器
- 获取Bean
- 容器类层次结构
- BeanFactory
# 获取配置文件
先前几章中,我们通过new ClassPathXmlApplicationContext("applicationContext.xml");
获取到配置文件对象,但当你输入该构造方法时,可以注意到,除了ClassPathXmlApplicationContext
还有一个FileSystemXmlApplicationContext
,其实这也能获取到配置文件对象,区别在于FileSystemXmlApplicationContext
是根据路径获取的,而ClassPathXmlApplicationContext
是根据类路径获取。
正常情况当然选择ClassPathXmlApplicationContext啦!
# 获取Bean
说完获取配置文件对象后,另一个就是获取Bean了。
先前我们通过getBean()
获取指定id的Bean对象,但每次调用这方法都得进行类型强转。
Spring还提供了其他两种方式
BookDao bd = applicationContext.getBean("bookDao",BookDao.class);
BookDao bd = applicationContext.getBean(BookDao.class);
第一种只是相当于将类型转换放构造器里而已,第二种是根据类型自动装配,但问题是一旦有多个匹配的bean,就会报错!
![[Pasted image 20220612143643.png]]
# BeanFactory
这东西先前也没提过,其实他是ApplicationContext接口的爷接口,该接口在Spring1.0时就存在了,但由于局限性较大,后续作者又在该接口的基础上做了新的扩展,逐渐有了现在的ApplicationContext
小知识:在IDEA中,鼠标点击Class后按下Ctrl+H可以看到类的继承结构
![[Pasted image 20220612144512.png]] ![[Pasted image 20220612144529.png]]