Spring框架學習筆記(四)

来源:https://www.cnblogs.com/mmgf/archive/2018/04/25/8931906.html
-Advertisement-
Play Games

上接Spring框架學習筆記(三) 聲明式事務管理(xml配置) 1 配置文件方式使用aop思想配置 第一步 配置事務管理器 第二步 配置事務增強 第三步 配置切麵 聲明式事務管理(註解) 第一步 配置事務管理器 第二步 配置事務註解 第三步 在要使用事務的方法所在類上面添加註解 SSH三大框架整合 ...


上接Spring框架學習筆記(三)

聲明式事務管理(xml配置)

1 配置文件方式使用aop思想配置

第一步 配置事務管理器

第二步 配置事務增強

 

第三步 配置切麵

 

 

聲明式事務管理(註解)

第一步 配置事務管理器

 

第二步 配置事務註解

 

第三步 在要使用事務的方法所在類上面添加註解

 

SSH三大框架整合:

(1)struts2

(2)hibernate5.x

(3)spring4.x

回顧SSH框架知識點:

Hibernate框架

1 hibernate核心配置文件

(0)orm思想

  - 對象關係映射

(1)資料庫信息

(2)hibernate信息

(3)映射配置

(4)hibernate核心配置文件

  - 如果單純使用hibernate框架,核心配置文件名稱 hibernate.cfg.xml和位置 src下麵 固定的

  - hibernate和spring整合時候,hibernate核心配置文件名稱和位置沒有固定要求的

2 hibernate映射配置文件

(1)實體類和資料庫表映射關係—使用orm思想

3 hibernate操作的步驟

(1)在spring框架對hibernate框架進行封裝,使用hibernateTemplate

Struts2框架

1 Action操作

(1)action創建三種方式

  - 繼承類 ActionSupport

(2)配置action訪問路徑

  - 創建struts.xml配置文件,這個文件名稱和位置固定 src下麵的

(3)配置訪問action的多個方法

  - 使用通配符方式配置

(4)在action獲取表單提交數據

  - 獲取request對象

  ** 使用ServletActionContext類獲取

  - 屬性封裝

  - 模型驅動(重點)

  - 表達式封裝

(5)在action操作域對象

  - 使用ServletActionContext獲取域對象

(6)配置struts2的過濾器

2 值棧

(1)向值棧放數據

  - set方法

  - push方法

  - 定義變數,生成get方法

(2)從值棧獲取數據

  - 在jsp中使用struts2標簽+ognl獲取

  - <s:property>

  - <s:iterator>

3 攔截器

(1)aop和責任鏈模式

(2)自定義攔截器

  - 繼承MethodFilterInterceptor

  - 重寫類裡面的方法

  - 配置攔截器和action關聯

 

Spring框架

1 spring核心配置文件

(1)名稱和位置沒有固定要求

(2)在spring核心配置文件中引入schema約束 

2 創建對象

(1)xml配置方式:<bean  id=””  class=””  scope=””/>

(2)註解方式:四個註解

3 註入屬性(對象類型屬性)

(1)xml配置方式:

(2)註解方式:兩個註解

    - autowired

    - resource

3 使用ServletContext對象和監聽器實現

(1)在伺服器啟動時候,載入spring配置文件,創建對象

(2)配置spring的監聽器

(3)指定spring配置文件位置

4 jdbcTemplate

5 spring事務配置

(1)xml方式

(2)註解方式

 

SSH框架整合思想

1 三大框架應用在javaee三層結構

2 struts2框架和spring整合

(1)struts2的action在spring配置

3 spring框架和hibernate框架整合

(1)hibernate的sessionFactory交給spring配置

(2)把hibernate資料庫配置交給spring配置

整合struts2和spring框架

1 把struts2的action交給spring管理

2 實現過程

第一步 導入struts2的jar包

(1)導入用於整合的jar包

第二步 創建action

第三步 創建struts2核心配置文件,配置action

(1)位置在src下麵,名稱是struts.xml

第四步 配置struts2過濾器

第五步 導入spring的jar包

第六步 創建spring配置文件

(1)引入約束

(2)配置spring監聽器

 

(3)指定spring配置文件位置

 

 

第七步 把action交給spring進行配置(***)

(1)在spring配置action對象,在struts.xml中也配置action對象

(2)解決:

只需要在spring裡面配置action對象,不要在struts.xml中配置

Spring框架整合hibernate框架 

1 把hibernate核心配置文件中配置資料庫信息,把資料庫信息在spring進行配置

2 把hibernate裡面的sessionFactory創建交給spring管理 

具體實現

第一步 導入hibernate的jar包

(1)導入struts2和hibernate的jar包時候有jar衝突問題

在struts2裡面有jar包

在hibernate裡面有jar包

刪除低版本的jar包

(2)導入spring整合持久化層框架需要導入jar包

第二步 搭建hibernate環境搭建

1 創建實體類

2 配置實體類映射關係

3 創建核心配置文件

第三步 把hibernate核心配置文件資料庫配置,在spring進行配置

(1)把hibernate核心文件中資料庫配置去掉了,在spring配置

第四步 把hibernate的sessionFactory交給spring配置

(1)伺服器啟動時候,載入spring配置文件,把配置文件中對象創建

(2)把sessionFactory對象創建在spring配置

(3)因為創建sessionFactory代碼不是new出來的,而是多行代碼實現的

(4)spring裡面針對上面情況,封裝類,配置類對象可以創建sessionFactory

第五步 在dao裡面使用hibernateTemplate

(1)在dao得到hibernateTemplate的對象

(2)調用hibernate模板裡面save方法添加

沒有配置事務,做操作時候,出現異常

 

第六步 配置事務

 

HibernateTemplate介紹

1 HibernateTemplate對hibernate框架進行封裝,

直接調用HibernateTemplate裡面的方法實現功能

2 HibernateTemplate常用的方法

  • Serializable save(Object entity) :添加操作
  •  void update(Object entity) :修改操作
  •  void delete(Object entity) :刪除操作
  •  <T> T get(Class<T> entityClass, Serializable id) :根據id查詢
  •  <T> T load(Class<T> entityClass, Serializable id): 根據id查詢

  •  List find(String queryString, Object... values) :查詢操作的方法

 

(1)第一個參數是 hql語句

(2)語句參數值

 

 

再次複習一下SSH框架整合過程:

第一步 導入jar包

第二步 搭建struts2環境

(1)創建action,創建struts.xml配置文件,配置action

(2)配置struts2的過濾器

第三步 搭建hibernate環境

(1)創建實體類

(2)配置實體類和資料庫表映射關係

(3)創建hibernate核心配置文件

- 引入映射配置文件

第四步 搭建spring環境

(1)創建spring核心配置文件

(2)讓spring配置文件在伺服器啟動時候載入

- 配置監聽器

- 指定spring配置文件位置

第五步 struts2和spring整合

(1)把action在spring配置(action多實例的)

(2)在struts.xml中action標簽class屬性裡面寫 bean的id值

第六步 spring和hibernate整合

(1)把hibernate核心配置文件中資料庫配置,在spring裡面配置

(2)把hibernate的sessionFactory在spring配置

第七步 在dao裡面使用hibernateTemplate

(1)在dao註入hibernateTemplate對象

(2)在hibernateTemplate對象中註入sessionFactory

第八步 配置事務

整合其他方式

1 spring整合hibernate時候,可以不寫hibernate核心配置文件

(1)把hibernate核心配置文件中,基本信息配置和映射引入都放到spring配置

 

Spring分模塊開發

1 在spring裡面配置多個內容,造成配置混亂,不利用維護

2 把spring核心配置文件中,一部分配置放到單獨的配置文件中,在spring核心配置文件中引入單獨配置文件

Spring框架到此暫時告一段落。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [Java] 設計模式:代碼形狀 lambda表達式的一個應用 Code Shape 模式 這裡介紹一個模式:Code Shape。沒聽過,不要緊,我剛剛纔起的名字。 作用 在應用程式的開發中,我們一般會使用多層架構。 在這種情況下,每一層的方法往往會呈現相同的代碼結構。這裡稱之為 層的代碼形狀 。 ...
  • 搭建Struts2開發環境 1. 下載Struts2開發包 "http://struts.apache.org" 2. 開發包目錄結構 3. 搭建開發環境 3.1 拷貝必要jar包到classpath中 3.2 建立Struts2的配置文件 at the top of classpath(在最頂層的 ...
  • 前言 當我們知道了struts2爆出來的安全問題之後,漸漸的,struts2已經比較少人在使用了,雖然在筆者的介紹中依舊會介紹struts2,但是使用確實會比較少了。那麼今天我們要學習的,就是一個類似於struts2的前端框架,那就是springmvc。 一、springmvc簡介 1.1什麼是sp ...
  • 示例1 輸出 示例2 實現類重寫default方法 輸出 示例3 輸出 示例4 輸出 報錯 示例5 輸出 示例6 輸出 報錯 示例7 輸出 ...
  • 前言: 在開發當中,經常會驗證用戶登錄狀態和獲取用戶信息。如果每次都手動調用用戶信息查詢介面,會非常的繁瑣,而且代碼冗餘。為了提高開發效率,因此就有了今天這篇文章。 思路: 用戶請求我們的方法會攜帶一個Token,通過Filter過濾器將會員信息查出來並放到request請求參數中。接著在Cotro ...
  • final實例域 實例域(對象的屬性)可修飾為final。修飾為final後,在構建對象時必須初始化這個實例域。若沒有在實例域進行初始化,那麼必須在每個構造器內初始化這個實例域(否則會編譯錯誤)。 表明在後面的操作中,不能夠再對它進行修改。即沒有對應的域更改器(set)方法. final修飾大部分都 ...
  • 放下該放下的,跟從自己的心,試著去瞭解我自己。 2016.07畢業至今。在一家台資代工廠工作。 時間過得飛快,身邊同時進來的10餘人,僅剩3人。這輛公交車,大家說下就下了。 2016年低,和中神一起下班的路上,我賣弄自己寫的VBA腳本,如何快速處理表格云云。中神不甘示弱“我寫的python腳本可以抓 ...
  • 基礎數據類型: 六個標準的數據類型: Number(數字) String(字元串) List(列表) Tuple(元祖) Sets(集合) Dictionary(字典) ———————— 不可變數據(四個):Number(數字)、String(字元串)、Tuple(元祖)、Sets(集合) 可變數據 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...