Spring IoC的應用場景


  1. 在 Java EE企業應用開發中,前面介紹的IoC(控制反轉)設計模式,是解耦組件之間復雜關系的利器,Spring IoC模塊就是這個模式的一種實現。
  2. EJB模式中,應用開發人員需要編寫EJB組件,而這種組件需要滿足EJB容器的規范,才能運行在EJB容器中,從而獲取事務管理、生命周期管理這些組件開發的基本服務。
  3. 從獲取的基本服務上看,Spring提供服務和EJB容器提供的服務並沒有太大的差別,只是在具體怎樣獲取服務的方式上,兩者的設計有很大的不同:在Spring中,Spring IoC提供了一個基本的JavaBean容器,通過IoC模式管理依賴關系,並通過依賴注入AOP切面增強了為JavaBean這樣的POJO對象賦予事務管理生命周期管理等基本功能;而對於EJB,一個簡單的EJB組件需要編寫遠程/本地接口Home接口以及Bean的實現類,而且EJB運行是不能脫離EJB容器的,查找其他EJB組件也需要通過諸如JNDI這樣的方式,從而造成對EJB容器技術規范依賴也就是說Spring把EJB組件還原成了POJO對象或者JavaBean對象降低了應用開發對傳統J2EE技術規范的依賴
  4. 同時,在應用開發中,以應用開發人員的身份設計組件時,往往需要引用和調用其它組件的服務,這種依賴關系如果固化在組件設計中,就會造成依賴關系的僵化維護難度的增加,這個時候,如果使用IoC容器,把資源獲取的方向反轉,讓IoC容器主動管理這些依賴關系,將這些依賴關系注入到組件中,那么會讓這些依賴關系的適配和管理更加靈活。
  5. 在具體的注入實現中,接口注入(Type 1 IoC),setter注入(Type 2 IoC),構造器注入(Type 3 IoC)是主要的注入方式。在Spring的IoC設計中,setter注入構造器注入主要的注入方式;相對而言,使用Spring時setter注入是常見的注入方式,而且為了防止注入異常,Spring IoC容器還提供了對特定依賴的檢查。
  6. 另一方面,在應用管理依賴關系時,可以通過IoC容器將控制進行反轉,在反轉的實現中,如果能通過文本完成配置,並且還能通過工具對這些配置信息進行可視化的管理瀏覽,那么肯定是能夠提高對組件關系的管理水平,並且如果耦合關系需要變動並不需要重新修改和編譯Java源碼,這符合在面向對象設計中的開閉准則,並且能夠提高組件系統設計的靈活性,同時,如果結合OSGi的使用特性,還可以提高應用的動態部署能力。
  7. 在具體使用Spring IoC容器的時候,我們可以看到,Spring IoC容器已經是一個產品實現。作為產品實現,它對多種應用場景的適配是通過Spring設計的IoC容器系列來實現的,比如在某個容器系列中可以看到各種帶有不同容器特性的實現,可以讀取不同配置信息的各種容器,從不同I/O源讀取讀取配置信息的各種容器設計,更加面向框架的容器應用上下文的容器設計等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM