摘要:在框假中充當了管理容器的角色。中也有對事務的管理,中事務管理是通過創建和維護來完成。這也就是所謂控制反轉的概念所在依賴控制權由應用代碼中轉到了外部容器,控制權的轉移,是所謂反轉。
在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隔離降低了程序的耦合性使我們可以在不同的應用中將各個切面結合起來使用大大提高了代碼重用度
實現松偶合
1 為你的項目增加一個管家,你不必寫很多的代碼去實現一些框架已經實現的功能。很多事情就可以交給管家去做。
很多的攔截,過濾,日志,國際化問題,發送消息,集成Hibernate,Ibatis,http遠程調用。MVC框架等。
事務管理等,都不需要自己寫很多的代碼,完全可以通過適當的配置交給Spring去管理。
項目開發進度會加快很多。架構設置合理后,程序員只負責實現很少的部分代碼就可以完成很復雜的功能。
SSH中 struts hibernate spring 各起什么作用
struts 控制用的
hibernate 操作數據庫的
spring 用解耦的
詳細的說:
STRUTS 在 SSH 框架中起控制的作用 , 其核心是 Controller, 即 ActionServlet, 而 ActionServlet 的核心就是 Struts-confi g.xml. 主要控制邏輯關系的處理 .
hibernate 是數據持久化層 , 是一種新的對象、關系的映射工具 , 提供了從 Java 類到數據表的映射,也提供了數據查詢和恢復等機制 , 大大減少數據訪問的復雜度。把對數據庫的直接操作 , 轉換為對持久對象的操作 .
SPRING 是一個輕量級的控制反轉 (IoC) 和面向切面 (AOP) 的容器框架 , 面向接口的編程 , 由容器控制程序之間的(依賴)關系,而非傳統實現中,由程序代碼直接操控。這也就是所謂 “ 控制反轉 ” 的概念所在:(依賴)控制權由應用代碼中轉到了外部容器,控制權的轉移,是所謂反轉。依賴注入,即組件之間的依賴關系由容器在運行期決定,形象的來說,即由容器動態的將某種依賴關系注入到組件之中
起到的主要作用是解耦
Struts 、 spring 、 Hibernate 在各層的作用
1 struts 負責 web 層 .
ActionFormBean 接收網頁中表單提交的數據,然后通過 Action 進行處理,再 Forward 到對應的網頁。
在 struts-config.xml 中定義
2 spring 負責業務層管理,即 Service (或 Manager).
(1 . service 為 action 提供統計的調用接口,封裝持久層的 DAO.
(2 .可以寫一些自己的業務方法。
(3 .統一的 javabean 管理方法
(4 .聲明式事務管理
(5. 集成 Hiberante
3 Hiberante ,負責持久化層,完成數據庫的 crud 操作
hibernate 為持久層,提供 OR/Mapping 。 它有一組 .hbm.xml 文件和 POJO, 是跟數據庫中的表相對應的。然后定義 DAO ,這些是跟數據庫打交道的類,它們會使用 PO 。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/66784.html
摘要:會一直完善下去,歡迎建議和指導,同時也歡迎中用到了那些設計模式中用到了那些設計模式這兩個問題,在面試中比較常見。工廠設計模式使用工廠模式可以通過或創建對象。 我自己總結的Java學習的系統知識點以及面試問題,已經開源,目前已經 41k+ Star。會一直完善下去,歡迎建議和指導,同時也歡迎Star: https://github.com/Snailclimb... JDK 中用到了那...
摘要:抽象工廠模式是為了處理對象具有等級結構以及對象族的問題。單例設計模式單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統提供這個實例,這個類成為單例類。 導語:設計模式是無數碼農前人在實際的生產項目中經過不斷的踩坑、爬坑、修坑的經歷總結出來的經驗教訓,經過抽象之后表達成的概念。能夠幫助后來的設計者避免重復同樣的錯誤或者彎路。我也抽空整理了一下設計模式,用自己的話總結了一下,自認...
摘要:要是使用到日歷的話,我們想到使用這個日歷類上面僅僅是我個人總結的要點,如果有錯誤的地方還請大家給我指正。 納稅服務系統總結 納稅服務系統是我第一個做得比較大的項目(不同于javaWeb小項目),該項目系統來源于傳智Java32期,十天的視頻課程(想要視頻的同學關注我的公眾號就可以直接獲取了) 我跟著練習一步一步完成需求,才發覺原來Java是這樣用來做網站的,Java有那么多的類庫,頁面...
摘要:的很容易反映出常見的工作流程。權限檢查是執行授權的另一種方式。在安全框架領域提供了一些獨特的東西一致的會話,可用于任何應用程序和任何架構層。 Apache Shiro?是一個功能強大且易于使用的Java安全框架,可執行身份驗證,授權,加密和會話管理。借助Shiro易于理解的API,可以快速輕松地保護任何應用程序 - 從最小的移動應用程序到最大的Web和企業應用程序。 1. Apache S...
摘要:需求整合框架做一個保存用戶的業務,業務比較簡單,重在框架整合。 需求:整合ssh框架做一個保存用戶的業務,業務比較簡單,重在ssh框架整合。創建數據庫和表 CREATE DATABASE ssh01; USE DATABASE; 表由Hibernate創建,可以看配置是否成功 一:導入jar包 Hibernate需要jar Hibernate基本jar mysql驅動 ...
閱讀 1703·2021-08-30 09:45
閱讀 1756·2019-08-30 15:54
閱讀 1178·2019-08-30 14:02
閱讀 1933·2019-08-29 16:21
閱讀 1617·2019-08-29 13:47
閱讀 3199·2019-08-29 12:27
閱讀 704·2019-08-29 11:01
閱讀 2668·2019-08-26 14:04