堅持每天寫博文,積累下開發中的點點滴滴
- Ioc容器
容器對象:ObjectFactory與ApplicationContext:
BeanFactory:這個接口是spring中最底層的接口,只提供了最簡單的IoC功能(創建bean,獲取bean,銷燬bean);
1,ApplicationContext繼承了BeanFactory,提供了基本的IoC功能;
2,ApplicationContext還提供了其他功能:
1,支持國際化;
2,支持消息機制;
3,支持統一的資源加載;
4,支持AOP功能;
在一般的應用當中,一般不使用BeanFactory;推薦用ApplicationContext(應用上下文);
Resource常見實現類(瞭解)
1.ClassPathResource:從classpath根路徑開始找配置文件
2.FileSystemResource:從磁盤的文件路徑去找:c:/xx.xml
3.ServletContextResource:應用於Web中,從Web中去中配置文件.
ApplicationContext常見實現類(瞭解):
1:ClassPathXmlApplicationContext:讀取classpath中的資源
ApplicationContext ctx = new ClassPathXmlApplicationContext(“applicationContext.xml”);
2:FileSystemXmlApplicationContext:讀取指定路徑的資源
ApplicationContext ac = new FileSystemXmlApplicationContext(“c:/licationContext.xml”);
3:XmlWebApplicationContext:需要在Web的環境下才可以運行
XmlWebApplicationContext ac = new XmlWebApplicationContext(); // 這時並沒有初始化容器
ac.setServletContext(servletContext); // 需要指定ServletContext對象
ac.setConfigLocation(“/WEB-INF/applicationContext.xml”); // 指定配置文件路徑,開頭的斜線表示Web應用的根目錄
ac.refresh(); // 初始化容器
bean的創建時機:
1.ApplicationContext在加載的時候就會創建所有的bean (Web應用建議)
2.BeanFactory需要等到拿bean的時候纔會創建bean(延遲初始化)(桌面程序)
使用ApplicationContext如何延遲初始化:
針對於當前xml中所有的bean。
<beans default-lazy-init="default | false | true">
針對於指定的bean:
<bean lazy-init="default | false | true">