Spring的控制反轉和依賴注入


Spring的官網:https://spring.io/

 StrutsHibernate可以做什么事?

  Struts

    Mvc中控制層解決方案

    可以進行請求數據自動封裝、類型轉換、文件上傳、效驗

Hibernate,

  持久層的解決方案;

  可以做到,

  把對象保存到數據庫,

  從數據庫中取出的是對象。

傳統的開發模式

  基於mvc模式進行項目開發;

  基於mvc的項目框架結構:

  Entity / dao / service / action

為什么引入Spring:

 思考:

    1. 對象創建創建能否寫死?

    2. 對象創建細節

        對象數量

            action  多個   【維護成員變量】

            service 一個   【不需要維護公共變量】

            dao     一個   【不需要維護公共變量】

        創建時間

            action    訪問時候創建

            service   啟動時候創建

            dao       啟動時候創建

    3. 對象的依賴關系

        action 依賴 service

        service依賴 dao

=======================================================

總結:

spring就是解決上面的問題的!

簡單來說,就是處理對象的創建的、以及對象的依賴關系!

1:框架設計:

  1.1:侵入式設計:引入了框架,對現有的類的結構有影響,即需要實現或者繼承某些特定類

      例如:Struts2框架

  1.2:非侵入式設計:引入了框架,對現有的類結構沒有影響

      例如:Hibernate框架,Spring框架


 2:Spring框架

  Spring概述:可以解決對象創建以及對象之間依賴關系的一種框架。且可以很好的和其他框架一起使用,

     如Spring和Hibernate,Spring和Struts2,其實通俗點講Spring就是起到一種整合的作用,

     如是一座橋梁,連接了Hibernate和Struts2;

  2.1:控制反轉(Inversion of Confrol):

      對象的創建交給外部容器完成,這個就叫做控制反轉

  2.2:依賴注入(dependency injection):

     處理對象的依賴關系

  2.3:控制反轉和依賴注入的區別:

     控制反轉:解決對象創建的問題[對象創建交給別人即ioc容器]; 

     依賴注入:在創建完對象后,對象的關系的處理就是依賴注入[通過set方法依賴注入];

  2.4:AOP面向切面編程
    面向切面編程:切面,簡單的說來可以理解為一個類,由很多重復代碼形成的類。
    例如:事務,日志,權限。


3:Spring提供了一站式解決方案:

  3.1:SpringCore:

      Spring的核心功能,IoC容器,解決對象創建以及依賴關系

  3.2:SpringWeb:

     Spring對web模塊的支持:

        (1)可以與struts2整合,讓struts2的action的創建交給Spring

           (2)Spring mvc模式 

  3.3:SpringDao:

      Spring對jdbc操作的支持[JdbcTemplate模板工具類]

    3.4:SpringORM:

     Spring對orm的支持:

      (1):既可以與Hibernate整合

      (2):也可以使用Spring對Hibernate操作的封裝

  3.5:SpringAOP:

      面向切面編程

  3.6:SpringEE:

    Spring對JavaEE其他模塊的支持  


 框架啊,東西多而雜,耐着性子慢慢消化~~~


免責聲明!

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



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