容器
6.1:创建容器
6.2:获取bean
- 通过bean的名称获取,但是有强转(说实话,不太好)
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
- 先通过bean名称,在找到
BookDao.class
对应的类创建对象
BookDao bookDao = ctx.getBean("bookDao",BookDao.class);
- 直接通过类型创建,但是如果对应
BookDao.class
的bean有多个,那这一下就创建出来很多对象了。
BookDao bookDao = ctx.getBean(BookDao.class);
6.3:beanFactory
加载和ApplicationContext
加载的区别
beanFactory
:所有bean延迟加载(在加载配置文件时,没有创建对象,即没有执行构造方法)ApplicationContext
:立即加载
但是可以在配置bean的时候加上lazy-init="true"
实现延迟加载的效果
<bean id="bookDao" class="com.ysj.dao.impl.BookDaoImpl" lazy-init="true"/>