Bean工廠之BeanFactory介紹
BeanFactory顧名思義是Bean工廠的意思,採用的是工廠設計模式。Bean工廠的神聖職責就是負責Bean執行個體的建立、Bean執行個體之間依賴關係的裝配及Bean執行個體的分發。這是Spring的核心技術之一,作為工廠,"看圖生產"是必不可少的,同理,我們必須為Bean工廠提供一份"生產圖紙"用於指導生產,這就是前面提到的Spring的設定檔(如applicationContext.xml),Spring並未規定設定檔的命名及數量,起什麼名字都行,多個設定檔也可以。Spring容器在執行個體化時就會裝載這些設定檔,並進行"看圖生產"。
基於"面向介面編程"的指導思想,BeanFactory被定義為介面,XmlBeanFactory是BeanFactory介面最常用的實作類別。XmlBeanFactory通過裝載指定的XML設定檔執行個體化BeanFactory容器。例如:
- //通過裝載指定的XML設定檔執行個體化BeanFactory容器
- Resource res = new FileSystemResource("c:/applicationContext.xml");
- BeanFactory factory = new XmlBeanFactory(res);
- //從Bean工廠容器中擷取名為"userAction"的UserAction執行個體
- userAction = (UserAction)factory.getBean("userAction");
BeanFactory容器執行個體化之後,我們就可以使用getBean方法從BeanFactory容器中擷取裝配好的Bean執行個體了。
SpringTeam Dev在設計Spring時,考慮到一些受限資源的應用場合,譬如PDA裝置上的Java應用等,故特意將BeanFactory容器儘可能地精簡,以減少資源的消耗。但對於那些需要國際化支援、Bean事件發布與監聽的應用來講,BeanFactory顯然有點力不從心了。於是通過繼承BeanFactory介面,又建立了ApplicationContext與WebApplicationContext等子介面,用以滿足Java EE應用的開發。