* ApplicationContest的三个常用实现类
* ClassPathXmlApplicationContext:它可以加载类路径的配置文件,要求配置文件必须在类路径下,如果不在则加载不了
* FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有访问权限)
* AnnotationConfigApplicationContext:它是用于读取注解创建容器的
* 核心容器的两个接口引发出的问题:
* ApplicationContext:单例对象适用
* 它在构建核心容器时,创建对象采取的策略是采取立即加载的方式。也就是说,只要一读取完配置文件马上就创建配置文件中配置的对象
* BeanFactory: 多例对象适用
* 它在构建核心容器时,创建对象采用的策略时采用延迟加载的方式。也就是说,什么时候根据id获取对象了,什么时候才真正创建对象
1 //1. 获取核心容器对象
2 ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
3 //2. 根据id获取Bean对象
4 IAccountService as = (IAccountService) ac.getBean("accountService");
5 //通过得到IAccountDao的字节码进行强转
6 IAccountDao ad = ac.getBean("accountDao",IAccountDao.class);
1 Resource resource = new ClassPathResource("bean.xml");
2 BeanFactory factory = new XmlBeanFactory(resource);
3 IAccountService accountService = (IAccountService) factory.getBean("accountService");