Spring - IoC容器
Ioc (Inversion of Control)是彈簧係統的核心。容器處理spring應用程序從啟動到湮滅的java對象。IoC增加了對使用的適應性和控製,並為應用程序的執行人員提供了一個安排普通舊Java對象的焦點。在Spring IoC中,我們可以安排條目是否為單例,什麼時候創建和刪除條目。spring holder利用依賴注入(DI)來處理對象。Spring伴隨著一些holder執行,這些執行分為兩類。
- Bean工廠
- 應用程序上下文
BeanFactory
Bean Factory為DI提供了真正的幫助,具有組織化的特點。bean .factory. beanfactory接口。BeanFactory依賴於加工工廠的配置設計,它使豆子具有主要的區別,它可以製造任何種類的豆子(與傳統的工業設施設計相比,它可以製造類似種類的豆子)。
BeanFactory實現
可以訪問BeanFactory的一些執行;然而,最著名的是XmlBeanFactory,它將來自XML記錄的bean進行堆棧。可以給XmlBeanFactory一些資源執行,以便XmlBeanFactory可以堆棧來自不同源的XML記錄。最常用的資源執行是-
- ByteArrayResource
- ClassPathResource
- FileSystemResource
- InputStreamResource
- UrlResource
延遲加載
在BeanFactory中,豆子是緩慢堆疊的,這意味著豆子是在製造豆子的時候堆疊起來的。然而,這些bean是在調用getBean()策略時生成的。
例子:
public類Calc {private int salary;私人int獎金;public Calc() {System.out。println(“Bean創建”);}公共int getSalary(){返回工資;}公共無效setSalary(int salary) {this。工資=工資;}公共int getBonus(){返回獎金;}公共無效setBonus(int bonus){此。Bonus =獎金;}公共int getTotal(){返回工資+獎金;}}公共類DisplayMessage{私有字符串消息;
public DisplayMessage()Spring應用程序上下文
ApplicationContext是高級Spring holder,其特征是org.springframework.context.ApplicationContext接口。應用程序支持Bean Factory所支持的規定,但還提供了額外的組件,如-
- 有用的MessageSource訪問(用於i18n)
- ApplicationEvent發布事件處理
- 堆棧資產的通用方法
- 自動注冊BeanPostProcessor
- 自動BeanFactoryPostProcessor注冊
Spring ApplicationContext實現
ApplicationContext有幾個執行是可訪問的,但在所有執行中最常用的是-
- classpathxmlapplicationcontext—從以類方式訪問的XML記錄加載文檔bean設置。
- filesystemxmlapplicationcontext—從文檔框架中可訪問的XML記錄加載文檔bean設置。
- xmlwebapplicationcontext -適用於web應用程序,並加載在web應用程序中可訪問的bean安排。
正如我們討論和檢查的那樣,BeanFactory緩慢地堆疊bean;然而,這不是應用程序上下文的情況。bean的示例是在應用程序設置的情況下創建的。
例子:
{system . out。println(“顯示消息Bean”);} public void setMessage(字符串消息)Message =消息;} public String getMessage(){返回this.message;}}