public class Client {
/**
* 獲取spring的IOC核心容器,並根據id獲取對象
* ApplicationContext的三個常用實現類
* classPathXmlApplicationContext: 它可以加載路徑下的配置文件,要求配置文件必須在類路徑下。不在的話加載不了
* FileSystemXmlApplicationContext: 它可以加載磁盤任意路徑下的配置文件件(必須有訪問權限)
* AnnotationConfigApplicationContext:它是用於讀取注解創建容器的,
*
* 核心容器的兩個接口引發出的問題;
* ApplicationContext: 單例對象適用
* 它在構建核心容器時,創建對象采取的策略是采用立即加載的方式。也就是說,只要一讀取配置文件馬上就創建文件中配置的對象。
* BeanFactory: 多例對象適用
* 它在構建核心容器時,創建對象采取的策略是采用延遲加載的方式。也就是說,什么時候根據id獲取對象了,什么時候才真正的構建對象。
*
*
* @param args
*/
public static void main(String[] args){
//1.獲取核心容器對象
//ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
//2.根據id獲取Bean對象
//IAccountService as = (IAccountService)ac.getBean("accountService");
// IAccountDao adao = ac.getBean("accountDao",IAccountDao.class);
//System.out.println(as);
// System.out.println(adao);
//----------BeanFactory------
Resource resource = new ClassPathResource("bean.xml");
BeanFactory factory = new XmlBeanFactory(resource);
IAccountService as = (IAccountService)factory.getBean("accountService");
System.out.println(as);
}
}