各大框架執行原理

2021-07-23 12:12:12 字數 1782 閱讀 1268

各框架執行原理

struts2 當servlet容器(tomcat)啟動的時候載入web.xml檔案,web.xml裡配置著struts2的核心控制器filterdispatcher/strutspreparedandexecutefilter。核心控制器被載入。當使用者向伺服器傳送請求時,核心控制器會根據請求的字尾名進行攔截,根據struts.xml配置檔案獲取需要訪問哪個action中的某個方法。然後正常處理業務,業務處理完成後向核心控制器傳送乙個字串,根據字串的值到struts.xml中尋找相對應的標籤中的標籤,根據name屬性匹配字串,進行**或者重定向。最終跳轉到指定的jsp頁面。

接收值的方式:屬性驅動、模型驅動

將需要接收的資料定義為成員變數,並提供set/get方法,struts2中的***幫助我們去接收資料和傳遞資料。

spring ioc:控制反轉(di依賴注入),將以前由我們自己手動建立物件的過程交給了spring,spring幫助我們生產物件、管理物件、管理物件和物件之間的依賴關係。降低了**的耦合度,方便我們後期對專案做維護。

三種注入方式:

1.setter注入

2.構造器注入

3.屬性注入(註解)

@autowired:預設根據型別進行匹配

@resource:首先根據名稱進行匹配,再根據型別進行匹配

自動裝配autowire屬性

aop:面向切面(方便)程式設計,可以為某一類物件 進行監督和控制,也就是在呼叫這類物件的具體方法的前後去呼叫你指定的功能模組,從而達到對乙個模組擴充的功能。可以通過註解或者xml文件進行實現。

開發切面,切面裡面寫的功能模組,叫做通知。

前置通知@before、後置通知@afterreturning、最終通知@after、異常通知@afterthrowing、環繞通知@around

後置通知和最終通知的區別:

後置通知只有在方法正常執行後才會被呼叫,如果方法執行過程中報錯,則不會執行後置通知,而是執行異常通知。

無論方法執行有沒有報錯,都會執行最終通知

aop最重要的乙個應用:spring的事務管理器。

spring的事務管理器就是乙個切面,切面中的功能不再是計算時間、輸出日誌,而是管理事務。因為spring的事務管理器要對一組資料庫操作做事務控制。所以事務管理器需要切入到乙個可以包含所有dao操作的方法中,即service方法。

接收值的方式:屬性驅動、模型驅動

接收:將需要接受的資料定義在引數列表中

傳值:獲取httpservletrequest作用域,將值使用setattribute方法存入作用域

mybatis mybatis 是支援普通 sql 查詢,儲存過程和高階對映的優秀持久層框架。mybatis 消除了幾乎所有的 jdbc **和引數的手工設定以及結果集的檢索。mybatis在執行時,首先載入配置檔案,獲取乙個輸入流,sqlsessionfactorybuilder(類)根據獲取到的輸入流來建立sqlsessionfactory(介面),再根據sqlsessionfactory來建立sqlsession(介面),使用sqlsession執行sql語句。

hibernate 首先,由configuration使用dom4j去載入主配置檔案hibernate.cfg.xml。根據配置檔案資訊建立sessionfactory物件,sessionfactory是執行緒安全的。再由sessionfactory去建立session物件,session物件相當於jdbc中的connection物件,session物件是執行緒不安全的。再由session物件去執行各種資料庫的操作。

hibernate中的三種狀態:

臨時狀態、持久化狀態、游離狀態

iBatis框架的執行原理。

本文分析ibatis框架的主要類是如何串聯起來 如何工作的。下圖描述了整個過程中的主要執行步驟。在上圖中描述的sqlmapsession物件的建立和釋放根據不同的情況會有所不同,因為sqlmapsession負責建立資料庫的連線,包括對事務的管理,ibatis既可以自己管理事務又可以由外部管理,ib...

ADB執行框架原理解析

一 adb守護程序的初始化 原始碼路徑 system core adb adb.c int main int argc,char argv start device log property get persist.adb.trace mask value,如果定義了該屬性,則開啟對應adb log...

基於Scrapy爬蟲框架的執行原理

scrapy是乙個非常強大的第三方庫,也是乙個提高爬蟲效率的框架,入門較難。框架內部包含模組可以描述為 5 2 模組,包含 spiders,item piplines engine scheduler 而engine和spiders,之間包含了兩個中間鍵模組,因此叫 5 2 模組。從spider經過...