事務管理務原本是資料庫中的概念,在Dao層。但一般情況下,需要将事務提升到業務層,即Service層。這樣做是為了能夠使用事務的特性來管理具體的業務。
Spring事務管理事務管理器是PlatformTransactionManager接口對象。其主要用于完成事務的送出、復原,及擷取事務的狀态資訊。
PlatformTransactionManager:接口常用的兩個實作類
DataSourceTransactionManager:使用JDBC或MyBatis 進行持久化資料時使用。
HibernateTransactionManager:使用Hibernate進行持久化資料時使用。
Spring的復原方式
Spring事務的預設復原方式是:發生運作時異常時復原,發生受查異常時送出
接口TransactionDefinitiond定義的事務的常量
事務定義接口事務定義接口TransactionDefinition中定義了事務描述相關的三類常量:事務隔離級别、事務傳播行為、事務預設逾時時限,及對它們的操作。
事務傳播行為:所謂事務傳播行為是指,處于不同僚務中的方法在互相調用時,執行期間事務的維護情況。如,A事務中的方法doSome()調用B事務中的方法doOther(),在調用執行期間事務的維護情況,就稱為事務傳播行為。
事務具有哪些特性原子性:一個事務是一個不可分割的工作機關,事務中包括的操作要麼都做,要麼都不做。
一緻性:事務必須是使資料庫從一個一緻性狀态變到另一個一緻性狀态。一緻性與原子性是密切相關的。
隔離性:一個事務的執行不能被其他事務幹擾。即一個事務内部的操作及使用的資料對并發的其他事務是隔離的,并發執行的各個事務之間不能互相幹擾。
持續性:持續性也稱永久性(permanence),指一個事務一旦送出,它對資料庫中資料的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。
AspectJ的AOP配置方式管理事務的spring配置注冊事務管理器。
注冊事務通知
aop配置
代碼示例:
事務注解管理事務的spring配置注冊事務管理器。
配置注解驅動
代碼示例:
transaction-manager配置對應的是事物管理器的id
MVC介紹MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,它是一種軟體設計典範,是一種軟體架構設計分層模式。
Model(模型)是應用程式中用于處理應用程式資料邏輯的部分。
View(視圖)是應用程式中處理資料顯示的部分。
Controller(控制器)是應用程式中處理使用者互動的部分。
最典型的MVC就是JSP + servlet + javabean的模式。
MVC發展曆史Model 1 (jsp+javabean)
Model 2 (jsp+servlet+javabean)
Model1和Model2的優缺點
目前主流的MVC架構SpringMVC
Struts
JfinalSpringMVC(主流MVC架構):是spring架構的一部分(子架構),是實作對Servlet技術進行封裝。
SpringMVC開發步驟導入jar包
配置web.xml,注冊SpringMVC前端控制器(中央排程器)
編寫SpringMVC後端控制器
編寫springmvc配置檔案,注冊後端控制器(注意id寫法格式)
編寫跳轉資源頁面
SpringMVC請求處理流程① 使用者發送請求到springmvc架構提供的DispatcherServlet 這個前端控制器
② 前端控制器會去找處理器映射器(HandlerMapping),處理器映射器根據請求url找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一并傳回給DispatcherServlet 。
③ 根據處理器映射器傳回的處理器,DispatcherServlet 會找“合适”的處理器擴充卡(HandlerAdapter)
④ 處理器擴充卡HandlerAdpater會去執行處理器(Handler開發的時候會被叫成Controller也叫後端控制器) 執行之前會有轉換器、資料綁定、校驗器等等完成上面這些才會去正在執行Handler
⑤ 後端控制器Handler執行完成之後傳回一個ModelAndView對象
⑥ 處理器擴充卡HandlerAdpater會将這個ModelAndView傳回前端控制器DispatcherServlet。前端控制器會将ModelAndView對象交給視圖解析器ViewResolver。
⑦ 視圖解析器ViewResolver解析ModelAndView對象之後傳回邏輯視圖。
⑧ 前端控制器DispatcherServlet對邏輯視圖進行渲染(資料填充)之後傳回真正的實體View并響應給浏覽器。
靜态資源無法通路解決方案(三種)
第一種在web.xml中進行資源放行
第二種在SpringMVC配置檔案中使用MCV标簽default-servlet
第三種在SpringMVC配置檔案中使用MVC标簽的resource
其中location為資源檔案路徑,mapping的值為映射路徑