posts - 0,comments - 0,trackbacks - 0
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          留言簿

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          在SSH框假中spring充當了管理容器的角色。我們都知道Hibernate用來做持久層,因為它
          將JDBC做了一個良好的封裝,程序員在與數據庫進行交互時可以不用書寫大量的SQL語
          句。Struts是用來做應用層的,他它負責調用業務邏輯serivce層。所以SSH框架的流程大
          致是:Jsp頁面----Struts------Service(業務邏輯處理類)---Hibernate(左到右)   
            struts負責控制Service(業務邏輯處理類),從而控制了Service的生命周期,這樣層與層
          之間的依賴很強,屬于耦合。這時,使用spring框架就起到了控制Action對象(Strus中的)
          和Service類的作用,兩者之間的關系就松散了,Spring的Ioc機制(控制反轉和依賴注入)
          正是用在此處。   
               Spring的Ioc(控制反轉和依賴注入)   
               控制反轉:就是由容器控制程序之間的(依賴)關系,而非傳統實現中,由程序代碼
          直接操控   
               依賴注入:組件之間的依賴關系由容器在運行期決定  ,由容器動態的將某種依賴關系
          注入到組件之中  
          使用Spring的第二個好處(AOP應用):   
              事務的處理:   
             在以往的JDBCTemplate 中事務提交成功,異常處理都是通過Try/Catch 來完成,而在
          Spring中。Spring容器集成了TransactionTemplate,她封裝了所有對事務處理的功能,包括
          異常時事務回滾,操作成功時數據提交等復雜業務功能。這都是由Spring 容器來管理,大
          大減少了程序員的代碼量,也對事務有了很好的管理控制。Hibernate中也有對事務的管理,
          hibernate 中事務管理是通過SessionFactory 創建和維護Session 來完成。而Spring 對
          SessionFactory配置也進行了整合,不需要在通過hibernate.cfg.xml來對SessionaFactory進行
          設定。這樣的話就可以很好的利用Sping對事務管理強大功能。避免了每次對數據操作都要
          現獲得Session實例來啟動事務/提交/回滾事務還有繁瑣的Try/Catch操作。這些也就是Spring
          中的AOP(面向切面編程)機制很好的應用。一方面使開發業務邏輯更清晰、專業分工更
          加容易進行。另一方面就是應用Spirng    AOP隔離降低了程序的耦合性使我們可以在不同
          的應用中將各個切面結合起來使用大大提高了代碼重用度



          任何語言、框架的發展都是為了降低程序之間的依賴性和耦合性,使重用性達到最高,在我們平時的四層框架中,界面層page、action層、業務邏輯層service、數據訪問層dao,雖然分層明確,代碼清晰,但是層與層之間有著很高的依賴性,比如service層處理業務邏輯構造sql語句時需要引用dao層的對象,調用dao層的方法執行sql語句,而action層處理界面動作的時候又要引用service層的對象,調用service層的方法,這樣一來實例action對象的時候要同時實例至少一個service對象和一個dao對象,這樣依賴性太強,因此我們把他們做成接口,只在類里寫各層的引用,而不對引用進行實例化,用spring的ioc依賴注入,在spring容器啟動時來實例化引用,降低了程序的依賴性,如果某個業務邏輯發生變化,可以重新寫一個新的業務邏輯實現類,修改spring的配置文件即可,不用每個action代碼中去改new的對象,這就是依賴注入。
          而我們通常說一個方法只做一件事情,但是實際是實現不了的,因為一個方法除了做業務邏輯處理外還要至少處理事務、日志等事情,這些東西沒有辦法脫離,因此spring的aop面向切面,就將事務和日志可以定義成切面,配置的配置文件中,在你需要的時候切入進來,代碼中缺很清晰沒有事務和日志,這就是spring的aop。
          posted on 2013-01-17 19:40 Kevin_YK 閱讀(600) 評論(0)  編輯  收藏 所屬分類: SSH

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 龙口市| 南充市| 扎鲁特旗| 凤冈县| 芦溪县| 思南县| 塔城市| 武穴市| 临夏市| 铜山县| 榆树市| 集贤县| 长子县| 北辰区| 海晏县| 贞丰县| 双流县| 尤溪县| 萝北县| 观塘区| 遂溪县| 呼伦贝尔市| 射阳县| 松桃| 临沧市| 黎川县| 临夏县| 肥西县| 平安县| 额济纳旗| 类乌齐县| 呼玛县| 洪江市| 元朗区| 东丰县| 浙江省| 枞阳县| 托克托县| 新安县| 荆门市| 东乡县|