springmvc+mybatis
springmvc基礎知識
什麼是springmvc?
springmvc框架原理
處理器對映器、處理器介面卡、檢視解析器
springmvc入門程式
目的:對前端控制器、處理器對映器、處理器介面卡、檢視解析器
非註解的處理器對映器、處理器介面卡
註解的處理器對映器、處理器介面卡
什麼是springmvc?
Springmvc是spring框架的一個模組,是一個基於mvc的web框架
什麼是mvc?
mvc是一個設計模式
使用者請求 (request請求)-> C(控制器)Controller
response響應
處理結果返回
渲染檢視(將模型資料填充至request域) M(模型)pojo、action、service、dao
V(檢視)jsp、freemarker、work、pdf
什麼是springmvc?
使用者請求 (request請求) -> 前端控制器(DispatcherServlet) (請求查詢handler)-> 處理器對映器(HandlerMapping)
HandlerExcecutionChain{
HandlerInterceptor
Handler
}
)
請求處理器介面卡執行Handler
返回ModelAndView
請求進行檢視解析
返回view
檢視渲染
檢視 檢視解析器 Handler 處理器
(jsp、freemarker...) (事實是一個Controller)
執行Hanler
返回ModelAndView
處理器介面卡(HandlerAdapter)執行Handler
步驟:
1.發出請求到前端控制器DispatcherServlet
2.前端控制器請求HandlerMapping查詢Handler(可以根據xml配置、註解進行查詢)
3.處理器對映器HandlerMapping向前端控制器返回Handler
4.前端控制器呼叫處理器介面卡執行Handler
5.處理器介面卡執行Handler
6.處理器給處理器介面卡返回ModelAndView
7.處理器介面卡向前端控制器返回ModelAndView
8.前端控制器請求檢視解析器解析(根據邏輯檢視名解析成真正的檢視)
9.檢視解析器向前端控制器返回view
10.前端控制器渲染view(渲染檢視(將模型資料填充至request域))
11.前端控制器向使用者響應
springmvc入門
1.配置環境
jdk1.8 eclipse
2.springmvc版本4.2
3.非註解的處理器對映器和處理器介面卡
3.1.處理器設配器
3.1版本之前用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
3.1版本之後用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
3.2.處理器對映器
3.1版本之前用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping
3.1版本之後用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
4.註解的處理器對映器和處理器介面卡
4.1.
<!--使用mvc:annotation-driven代替上邊註解對映器和註解介面卡配置
mvc:annotation-driven預設載入很多的引數繫結方法,比如json轉換解析器就預設載入了,
如果使用mvc:annotation-driven不用配置上邊的RequestMappingHandlerAdapter和RequestMappingHandlerMapping
實際開發時使用mvc:annotation-driven
-->
4.2.在spring容器中載入handler
<!-- 可以掃描controller、service,指定controller的包名 -->
4.3.在handler中使用註解
@Controller
public class GoodsController {
@RequestMapping(value = "queryGoods")
public ModelAndView queryGoods() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("value", "資料");
modelAndView.setViewName("/WEB-INF/jsp/items/items_controller.jsp");
return modelAndView;
}
}
5.原始碼跟蹤
透過前端控制器原始碼分析springmvc的執行過程
1.前端控制器接收請求
執行doDispatch
2.前端控制器請求HandlerMapping查詢Handler
getHandler();獲取HandlerExecutionChain
3.呼叫處理器介面卡執行handler,得到ModelAndView
ha.handler(processedRequest, response, mappedHandler.getHandler());
4.檢視渲染,將model資料填充到request域
檢視解析,得到view
view = resolveViewName(mv.getViewName(), mv.getModelInternal(), locale, request);
呼叫view的渲染方法,將model資料填充到request域
渲染方法:
view.render(mv.getModelInternal(), request, response);
執行了exposeModelAsRequestAttributes方法遍歷model的map集合將key-value填充至request中
入門程式
1.配置view字首和字尾
2.搭建工程
com.itcast.ssm.controller 表現層
com.itcast.ssm.mapper dao層(mybatis)
com.itcast.ssm.po
com.itcast.ssm.service.impl 介面和實現
springmvc和mybatis整合
springmvc和mybatis的系統架構
表現層(handler)
springmvc
業務層(service介面) spring將各層進行整合,透過spring管理持久層的mapper(相當於dao介面)
spring 透過spring管理業務層service,service中可以呼叫mapper介面,透過spring管理表現層handler,
handler可以呼叫service介面,mapper、service、handler都是javabean
持久層(mapper)
mybatis
資料庫
mysql
3.整合dao
spring和mybatis整合,透過spring管理mapper介面
使用mapper的掃描器自動掃描mapper介面
3.1.在config資料夾建立包名為:mybatis->sqlMapConfig.xml
/p>
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"" >
<!-- 全域性setting配置,根據需要新增(二級快取) -->
<!-- 配置別名 -->
<!-- 批次掃描別名 -->
<!-- 配置mapper
由於使用spring和mybatis的整合包進行mapper掃描,這裡不需要配置了.
必須遵循:mapper.xml和mapper.java檔案同名且在同一個目錄
-->
<!--
-->
3.2.在config資料夾建立包名為:spring->springApplication-dao.xml
配置springApplication-dao.xml檔案的步驟:
3.2.1.載入db.properties檔案中的內容
3.2.2.配置資料來源
3.2.3.配置session工廠
3.2.4.自動掃描所有的Mapper介面與檔案
xmlns:xsi="" xmlns:tx="" xmlns:aop="" xmlns:context="" xsi:schemaLocation=" /spring-beans.xsd /spring-context.xsd /spring-tx.xsd /spring-aop.xsd"> <!-- 載入db.properties檔案中的內容,db.properties檔案中key命名要有一定的特殊規則 --> <!-- 配置資料庫,dbcp --> <!-- 配置資料來源 --> destroy-method="close"> <!-- 配置session工廠 --> <!-- 載入mybatis.cfg.xml檔案 --> <!-- 自動掃描需要定義類別名的包,將包內的JAVA類的類名作為類別名 --> <!-- <!-- 自動掃描所有的Mapper介面與檔案 --> <!-- 掃描包路徑,如果需要掃描多個包,中間使用半形逗號,隔開 -->
4.整合service
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2310/viewspace-2814651/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- springmvc+mybatis +Jeesz 分散式架構SpringMVCMyBatis分散式架構
- spring cloud + spring boot + springmvc+mybatis微服務雲架構CloudSpring BootSpringMVCMyBatis微服務架構
- SMM(spring +springmvc+mybatis)依賴註解等環境配置SpringMVCMyBatis
- spring cloud + spring boot + springmvc+mybatis分散式微服務雲架構CloudSpring BootSpringMVCMyBatis分散式微服務架構
- BAT 面試 Java 崗常問高頻 100 題:Spring+ 微服務 +SpringMVC+MyBatis面試Java微服務SpringMVCMyBatis
- SpringMVC 乾貨系列:從零搭建 SpringMVC+mybatis(二):springMVC 原理解析及常用註解 | 掘金技術徵文SpringMVCMyBatis