Ioc容器和bean的創建時機

堅持每天寫博文,積累下開發中的點點滴滴

  • 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">
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章