1. 程式人生 > >SpringMVC總結筆記01

SpringMVC總結筆記01

Spring表示式

原理

重要的類:

  • SpelExpressionparser:SpringEL解析表達器–》父類Expressionparse

  • StandardEvaluationContext:直譯:標準化評估語境—》父類EvaluationContext

    方法:

    • parseExpression():解析器物件呼叫解析
    • getValue():解析表達物件呼叫,獲取值
    • getValue(解析域物件):解析表達物件呼叫,返回解析域物件的值

對於引用型別:不用解析域物件,直接解析

xml配置解析器

Spring事務

管理jdbc-連線資料庫事務

連線資料庫

匯入jar包
  • Spring-jdbc:連線資料庫
  • mysql-connector-java:連線
  • commons-dbcp:連線池
  • spring-tx:事務
  • c3p0:連線池

c3P0連線池

queryForObject

new RowMapper<Users>() {
                    public Users mapRow(ResultSet resultSet, int i) throws SQLException {
                        return chuliresult(resultSet);
                    }

重要的類:

ComboPooledDataSource:負責連線資料庫

JdbcTemplate:負責sql操作,相當於封裝的sql工具類,負責Dao與持久層的傢伙

DataSourceTransactionManager:事務管理類

需要學習的類

  • DispatcherServlet:作為前端控制器,整個流程控制的中心,控制其它元件執行,統一排程,降低元件之間的耦合性,提高每個元件的擴充套件性。
  • HandlerMapping:通過擴充套件處理器對映器實現不同的對映方式,例如:配置檔案方式,實現介面方式,註解方式等。
  • HandlAdapter:通過擴充套件處理器介面卡,支援更多型別的處理器,呼叫處理器傳遞引數等工作!
  • ViewResolver:通過擴充套件檢視解析器,支援更多型別的檢視解析,例如:jsp、freemarker、pdf、excel等。

事務管理

事務的傳播行為*

  • (1)PROPAGATION_REQUIRED 表示當前方法必須執行在事務中。如果當前事務存在,方法將會在該事務中執行。否則,會啟動一個新的事務
  • (2)PROPAGATION_SUPPORTS 表示當前方法不需要事務上下文,但是如果存在當前事務的話,那麼該方法會在這個事務中執行
  • (3)PROPAGATION_MANDATORY 表示該方法必須在事務中執行,如果當前事務不存在,則會丟擲一個異常
  • (4)PROPAGATION_REQUIRED_NEW 表示當前方法必須執行在它自己的事務中。一個新的事務將被啟動。 如果存在當前事務,在該方法執行期間,當前事務會被掛起。 如果使用JTATransactionManager的話,則需要訪問TransactionManager
  • (5)PROPAGATION_NOT_SUPPORTED 表示該方法不應該執行在事務中。如果存在當前事務,在該方法執行期間,當前事務將被掛起。 如果使用JTATransactionManager的話,則需要訪問TransactionManager
  • (6)PROPAGATION_NEVER 表示當前方法不應該執行在事務上下文中。如果當前正有一個事務在執行,則會丟擲異常
  • (7)PROPAGATION_NESTED 表示如果當前已經存在一個事務,那麼該方法將會在巢狀事務中執行。 巢狀的事務可以獨立於當前事務進行單獨地提交或回滾。 如果當前事務不存在,那麼其行為與PROPAGATION_REQUIRED一樣。 注意各廠商對這種傳播行為的支援是有所差異的。可以參考資源管理器的文件來確認它們是否支援巢狀事務

事務的特性ACID

  • 原子性(atomicity)
  • 一致性(consistency)
  • 隔離性(isolation)
  • 永續性(durability)

事務併發引起的問題

  • 髒讀

    一個事務讀取到另外一個可能回滾的事務資料 ,是一個髒的資料。對應事務隔離性

  • 不可重複讀

    在同一個事務中兩次讀取到的資料不一致,由於兩次查詢過程的時間中,發生了更新或者增刪改的操作,違背一致性

  • 幻讀

    插入事務執行中,查詢事務查詢過來,發現數據沒有變化,實際上,插入操作正在進行

事務隔離級別

  • 讀未提交
  • 讀已提交
  • 可重複讀
  • 序列化