三大框架的工作原理
原理:
1.通過Configuration().configure();讀取並解析hibernate.cfg.xml配置檔案
2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>讀取並解析對映資訊
3.通過config.buildSessionFactory();//建立SessionFactory 4.sessionFactory.openSession();//開啟Sesssion 5.session.beginTransaction();//建立事務Transation 6.persistent operate持久化操作
7.session.getTransaction().commit();//提交事務 8.關閉Session 9.關閉SesstionFactory
為什麼要用:
1. 對JDBC訪問資料庫的程式碼做了封裝,大大簡化了資料訪問層繁瑣的重複性程式碼。 2. Hibernate是一個基於JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作
3. hibernate使用Java反射機制,而不是位元組碼增強程式來實現透明性。
4. hibernate的效能非常好,因為它是個輕量級框架。對映的靈活性很出色。它支援各種關聯式資料庫,從一對一到多對多的各種複雜關係。
Spring工作原理及其作用
1.springmvc請所有的請求都提交給DispatcherServlet,它會委託應用系統的其他模組負責對請求進行真正的處理工作。
2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller. 3.DispatcherServlet請請求提交到目標Controller
4.Controller進行業務邏輯處理後,會返回一個ModelAndView
5.Dispathcher查詢一個或多個ViewResolver檢視解析器,找到ModelAndView物件指定的檢視物件
6.檢視物件負責渲染返回給客戶端。
為什麼要使用Spring:
AOP 讓開發人員可以建立非行為性的關注點,稱為橫切關注點,並將它們插入到應用程式程式碼中。使用 AOP後,公共服務(比如日誌、永續性、事務等)就可以分解成方面並應用到域物件上,同時不會增加域物件的物件模型的複雜性。
IOC 允許建立一個可以構造物件的應用環境,然後向這些物件傳遞它們的協作物件。正如單詞 倒置 所表明的,IOC 就像反過來的JNDI。沒有使用一堆抽象工廠、服務定位器、單元素(singleton)和直接構造(straightconstruction),每一個物件都是用其協作物件構造的。因此是由容器管理協作物件(collaborator)。
Spring即使一個AOP框架,也是一IOC容器。 Spring 最好的地方是它有助於您替換物件。有了Spring,只要用JavaBean屬性和配置檔案加入依賴性(協作物件)。然後可以很容易地在需要時替換具有類似介面的協作物件。
struts1的工作原理
1.初始化:struts框架的總控制器ActionServlet是一個Servlet,它在web.xml中配置成自動啟動的
Servlet,在啟動時總控制器會讀取配置檔案(struts-config.xml)的配置資訊,為struts中不同的模組初始化相應的物件。(物件導向思想)
2.傳送請求:使用者提交表單或通過URL向WEB伺服器提交請求,請求的資料用HTTP協議傳給web伺服器。
3.form填充:struts的總控制器ActionServlet在使用者提交請求時將資料放到對應的form物件中的成員變數中。
4.派發請求:控制器根據配置資訊物件ActionConfig將請求派發到具體的Action,對應的formBean一併傳給這個Action中的excute()方法。
5.處理業務:Action一般只包含一個excute()方法,它負責執行相應的業務邏輯(呼叫其它的業務模組)完畢後返回一個ActionForward物件。伺服器通ActionForward物件進行轉發工作。
6.返回響應:Action將業務處理的不同結果返回一個目標響應物件給總控制器。 7.查詢響應:總控制器根據Action處理業務返回的目標響應物件,找到對應的資源物件,一般情況下為jsp頁面。
8.響應使用者:目標響應物件將結果傳遞給資源物件,將結果展現給使用者。
Struts2的工作原理
1 客戶端初始化一個指向Servlet容器(例如Tomcat)的請求
2 這個請求經過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp
的可選過濾器,這個過濾器對於Struts2和其他框架的整合很有幫助,例如:SiteMesh Plugin)
3 接著FilterDispatcher被呼叫,FilterDispatcher詢問ActionMapper來決定這個請是否需要呼叫某個Action
4 如果ActionMapper決定需要呼叫某個Action,FilterDispatcher把請求的處理交給ActionProxy
5 ActionProxy通過Configuration Manager詢問框架的配置檔案,找到需要呼叫的Action類
6 ActionProxy建立一個ActionInvocation的例項。
7 ActionInvocation例項使用命名模式來呼叫,在呼叫Action的過程前後,涉及到相關攔截器(Intercepter)的呼叫。
8 一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果通常是(但不總是,也可 能是另外的一個Action鏈)一個需要被表示的JSP或者FreeMarker的模版。在表示的過程中可以使用Struts2 框架中繼承的標籤。在這個過程中需要涉及到ActionMapper
相關文章
- Spring框架裡註解@Autowired的工作原理Spring框架
- Java JUnit框架裡@Category註解的工作原理Java框架Go
- Angular單元測試框架裡API toHaveBeenCalledTimes的工作原理Angular框架API
- Mirror 的工作原理
- LiveData的工作原理LiveData
- OAuth的工作原理OAuth
- Feign的工作原理
- Spark的工作原理Spark
- SAP Fiori Elements 框架裡 Smart Table 控制元件的工作原理介紹框架控制元件
- Android View 的工作原理AndroidView
- HTTPS代理的工作原理HTTP
- SOCKS代理的工作原理
- OSPF的基本工作原理
- 深入介紹 UI5 框架裡 Smart Field 控制元件的工作原理UI框架控制元件
- 工作流引擎的工作原理與功能
- 深度學習的工作原理深度學習
- PHP 中的 foreach 工作原理PHP
- 基本的爬蟲工作原理爬蟲
- spring-mvc的工作原理SpringMVC
- 介紹GitOps的工作原理Git
- WireGuard 教程:WireGuard 的工作原理
- Android View的工作原理(上)AndroidView
- SSH反向隧道的工作原理
- SAP Spartacus NgExpressEngineDecorator 的工作原理Express
- KubernetesAPIserver工作原理APIServer
- Mybatis工作原理MyBatis
- require工作原理UI
- HTTPS工作原理HTTP
- Nginx工作原理Nginx
- pr工作原理
- SpringMVC工作原理SpringMVC
- Oracle 的Lgwr Worker的工作原理Oracle
- 資料庫索引的工作原理資料庫索引
- TCP 重置攻擊的工作原理TCP
- .Net Core 中GC的工作原理GC
- JUnit 註解@RunWith的工作原理
- JUnit 註解@Category的工作原理Go
- JUnit 註解@SuiteClasses的工作原理UI
- JUnit 註解@Rule的工作原理