Spring 4 x 學習 第二章

2021-08-26 02:46:37 字數 1932 閱讀 4768

論壇登入模組例項

spring 擁有持久層、業務層和展現層的「原生技術」,分別是spring jdbc、宣告式事務和spring mvc

例項功能簡介

首先登陸頁面提供乙個帶使用者名稱/密碼的輸入表單,使用者填寫並提交表單後,伺服器端程式檢查是否有匹配的使用者名稱/密碼。如果使用者名稱/密碼不匹配,則返回登入頁面,並給出提示;如果使用者名稱/密碼匹配,則記錄使用者的成功登入日子,更新使用者的最後登入時間和ip,並給使用者增加5個積分,然後重定向到歡迎頁面。如圖:

在持久層擁有兩個dao類,分別是userdao和loginlogdao,在業務層對應乙個業務類uerservice,在展現層擁有乙個logincontroller類和兩個jsp頁面,分別是登入頁面login.jsp和歡迎頁面main.jsp

持久層

持久層負責資料的訪問和操作,dao類被上層的業務類呼叫。持久層的主要工作就是從資料庫表種載入資料並例項化領域物件(實體類),或將領域物件(實體類)持久化到資料庫表中。

這裡用@respository定義乙個daobean,使用@autowired將spring容器中的bean注入進來(關於spring的註解配置,將在第四章詳細講述)

在spring中裝配dao

在resources資料夾中建立smart-context.xml的spring配置檔案,檔案結構如下

在檔案中配置以下資訊

在1處,我們使用spring的掃瞄指定類包下的所有類,這樣在類中定義的spring註解(@repository、@autowired等)才能產生作用。

在2處,我們使用jakarta的dbcp開源資料來源實現方案定義了乙個資料來源,資料庫驅動器類為com.mysql.jdbc.driver.

在3處配置了jdbctemplatebean,將2處宣告的datasource注入jdbctemplate中,二這個jdbctemplate bean 將通過@auto wired自動注入loginlog和userdao的bean中,可見spring可以很好地將註解配置和xml配置統一起來。

業務層

在例項中業務層僅有乙個業務類,即userservice,負責將持久層的userdao和logindao組織起來,完成使用者/密碼認證、登入日誌記錄等操作。

首先1處通過@service註解將userservice標註為乙個服務層的bean

然後在2和3處注入userdao和loginlogdao 這兩個dao層的bean

最後在4處為loginsucess()方法標註@transactional事務註解,讓方法執行在事務環境中(因為我們在spring事務管理器攔截切入表示式上加入了@transactional過濾),否則該方法將在無事務方法中執行

在spring中裝配service

spring4 x(二)之第四章 IoC

控制反轉 inversion of control 又叫 依賴注入 即 讓呼叫類對某一介面實現類的依賴關係由第三方 容器或協作類 注入,以移除呼叫類對某一介面實現類的依賴。ioc的理念就是,讓別人為你服務 建構函式注入 就是被注入物件可以通過在其構造方法中宣告依賴物件的引數列表,讓外部 通常是ioc...

《精通Spring4 x》事務管理

一 資料併發問題 當資料庫中相同資料被多個事務同時訪問時,就可能會出現併發問題。這些問題可以歸結為5類,包括三類資料讀問題,以及2類資料更新問題。1 髒讀 a事務讀取b事務尚未提交的更改資料,並在這個資料的基礎上進行操作。2 不可重複讀 不可重複讀是指a事務讀取了b事務已經提交的更改資料。3 幻像讀...

(4)第二章習題

書籍 c primer plus 第6版 1 編寫乙個c 程式,它顯示您的姓名和位址。include using std cout using std endl int main 2 編寫乙個c 程式,它要求使用者輸入乙個以long為單位的距離,然後將它轉換為碼 一long 等於220碼 inclu...