Spring中的 BeanFactory和 ApplicationContext的區別與解釋spring
BeanFactory :這是一個工廠,用於生成任意bean。app
採起延遲加載,第一次getBean時纔會初始化Bean。spa
ApplicationContext:是BeanFactory的子接口,功能更強大。(國際化處理、事件傳遞、Bean自動裝配、各類不一樣應用層的Context實現)。code
當配置文件被加載,就進行對象實例化。xml
看下面兩個demo對象
下面這個是當配置文件被加載,對象就已經實例化了blog
public void demo01(){ //從spring容器得到 String xmlPath = "com/itheima/b_di/beans.xml"; ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
BookService bookService = (BookService) applicationContext.getBean("bookServiceId"); bookService.addBook(); }
這個就是延遲加載的例子接口
public void demo02(){ //使用BeanFactory --第一次調用getBean實例化 String xmlPath = "com/itheima/b_di/beans.xml"; BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource(xmlPath)); BookService bookService = (BookService) beanFactory.getBean("bookServiceId"); bookService.addBook(); }