ssm學習之ssm框架詳解

此文章轉載:https://blog.csdn.net/khxu666/article/details/79913151css

Java Web常見的三層結構

  • 表現層:也就是Web層,常見的框架有Spring MVC、Struts2 ,幷包括用於展現的界面,如JSP界面;
  • 業務層:Service層,專一於業務邏輯的實現;
  • 持久層:也叫Dao層,常見的框架是Hibernate、MyBatis。負責與數據庫的交互,封裝數據庫的訪問細節;從數據庫表中讀取加載數據並實例化領域對象(Domian Object)也就是從數據庫中讀取數據,或者返過來將領域對象實例化到數據庫中,也就是將數據寫入到數據庫中。

當服務器接受到來時瀏覽器的請求後,web層首先開始工做,根據不一樣的請求建立相應的servlet對請求進行處理轉發,業務層在收到來自web層的信息以後,調用持久層,持久層訪問數據庫後獲得返回結果,通過業務層將返回結果填充到顯示界面中(JSP中),web層將Jsp界面做爲瀏覽器請求的響應結果返回到瀏覽器。前端

 

三層結構在SSM框架中的體現

在用Java開發互聯網應用時,SSM框架(Spring + Spring MVC + MyBatis)成爲了愈來愈主流的選擇。在輕量級的開發中,常對Web應用分紅如下幾層:java

  • POJO層: 由一組POJO組成,是對系統各類對象的抽象表達。
  • DAO層(mapper): 負責數據庫的訪問,增、刪、改、查等,在MyBatis框架中也常被定義爲Mapper層。
  • Service層:由業務邏輯對象組成,是不一樣系統的業務邏輯的具體實現。
  • Controller層:由控制器組成,對來自瀏覽器的用戶請求進行攔截,並調用Service層的響應的業務邏輯組件處理用戶請求,並轉發返回結果到View層。
  • View層:由JSP界面,PDF文檔等組件組成,用於顯示系統對用戶請求的處理結果

其中SSM框架常常把dao包命名爲mapper包,並將mybatis框架的xxxMapper.java和xxxMapper.xml文件放到此包中web

 

Java 代碼源文件中幾個包的做用

包名 名稱 做用
DAO 數據訪問層(接口) 封裝對數據庫的操做,與數據操做有關的都放在這裏
DTO 數據傳輸層 用於 service 層與 web 層之間傳輸,是Entity的一部分或組合
Entity 實體類 通常與數據庫的表相對應,封裝 dao 層取出來的數據爲一個對象
Service 業務邏輯(接口) 寫咱們的業務邏輯
Service-Impl 業務邏輯具體實現 實現咱們業務接口,通常事務控制是寫在這裏
Controller MVC控制器 Spring MVC 就是在這裏發揮做用的
Mapper 數據庫具體操做 包含 xxxMapper.xml(和xxxMapper.java 兩者互相對應

DAO: 裏面能夠是數據庫操做,也能夠是文件讀寫操做,甚至是redis緩存操做。也有人叫作數據持久層。由於Mybatis能夠直接在配置文件中實現接口的每一個方法,因此不須要DAOImpl。redis

 

DTO:剛學框架的人可能不明白這個有什麼用,其實就是用於service層與web層之間傳輸,爲何不直接用entity(pojo)?其實在實際開發中發現,不少時間一個entity並不能知足咱們的業務需求,可能呈現給用戶的信息十分之多;或者一個 Entity 包含的信息過多,咱們須要的信息僅僅是Entity的一部分,爲了減小網絡傳輸,這時候就有了dto。 通常咱們使用DTO類來繼承entity實體類,在DTO類裏放一些業務字段,並提供get、set方法。當咱們在業務邏輯層或者交互層用到一些數據庫中不存在的字段時,咱們就須要在DTO類裏放這些字段,這些字段的意義就至關於一些經處理過的數據庫字段,實質意義就是方便數據交互,提升效率。spring

 

Entity:通常與數據庫的表相對應,封裝dao層取出來的數據爲一個對象,也就是咱們常說的pojo,通常只在dao層與service層之間傳輸sql

可選的額外包:數據庫

Exception:自定義異常。後端

Utils,即utility,工具輔助層,一組通用的代碼集合,好比處理多語言功能,網站非法信息過濾等等功能的代碼集;瀏覽器

 

resource:存放後端配置文件

配置文件 名稱 內容
spring-dao.xml spring數據鏈接配置 配置數據庫鏈接池、sqlSessionFactory對象,掃描DAO接口
spring-service.xml spring 服務配置 掃描service包下註解、配置事務管理器、基於註解的事務
spring-mvc.xml spring MVC 配置 開啓框架註解模式、處理靜態資源、配置jsp、掃描Controller
jdbc.properties 數據庫鏈接參數 配置 JDBC、數據庫url、用戶名、密碼等
mybatis-config.xml mybatis 配置文件 開啓自增主鍵、使用列別名、駝峯轉換
log4j.properties web 日誌輸出參數 web 日誌輸出參數
applicationContext.xml Spring與mybatis整合配置 配置數據庫鏈接池、sqlSessionFactory對象,掃描DAO接口

 

webapp:前端頁面與配置文件

存放jsp、css等靜態文件,web.xml 配置文件主要包含:

配置 Spring 須要加載的配置文件、啓用 disapatcher 轉發處理全部的請求、指定編碼格式

關於幾個包之間的關係

controller 包是 Spring MVC 的主要文件,其中對來自瀏覽器的各類請求進行轉發和處理。在 controller 中會內置各類 Service 包中的對象,當接收到新的請求的時候,解析 url ,根據註解調用相應的服務來完成請求。
entity 包經常與數據庫中的表一一對應,dao 包中定義了數據庫的基本操做,並在 mapper 包中的 xml 配置文件中完成數據操做的具體實現(也就是增、刪、改、查)。Mybatis 能夠實現 dao 與 .xml 的自動匹配,這時候就須要把 xxxMapper.xml 和 xxxMapper.java 放在同一個包內。
在 Service 包中定義了各類服務的接口,而後在 Service-Impl 包中對接口進行實現,在實現接口的時候會內置一個 DAO 包中的對象(由於 web 服務的實現確定是涉及到數據訪問的,而數據訪問被抽象成了 DAO 包中的對象,因此服務的實現必須藉助 DAO 包),而後咱們藉助 DAO 中的對象所實現的各類數據訪問處理方法來實現具體的服務。
SSM框架中各框架的做用

  • MyBatis:持久層框架,負責數據庫訪問。
  • Spring MVC:表現層框架,把模型、視圖、控制器分離,組合成一個靈活的系統。
  • Spring: 整合項目的全部框架,管理各類Java Bean(mapper、service、controller),事務控制。
相關文章
相關標籤/搜索