springmvc+mybatis

amadan發表於2021-09-09

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

--&gt

4.2.在spring容器中載入handler

<!-- 可以掃描controller、service,指定controller的包名 --&gt

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配置,根據需要新增(二級快取) --&gt

    <!-- 配置別名 --&gt

   

        <!-- 批次掃描別名 --&gt

       

   

    <!-- 配置mapper

        由於使用spring和mybatis的整合包進行mapper掃描,這裡不需要配置了.

        必須遵循:mapper.xml和mapper.java檔案同名且在同一個目錄

     --&gt

    <!--

        

    --&gt

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命名要有一定的特殊規則 --&gt

   

    <!-- 配置資料庫,dbcp --&gt

    <!-- 配置資料來源 --&gt

   

        destroy-method="close">

       

       

       

       

       

       

   

    <!-- 配置session工廠 --&gt

   

       

        <!-- 載入mybatis.cfg.xml檔案 --&gt

       

        <!-- 自動掃描需要定義類別名的包,將包內的JAVA類的類名作為類別名 --&gt

        <!-- --&gt

   

    <!-- 自動掃描所有的Mapper介面與檔案 --&gt

   

        <!-- 掃描包路徑,如果需要掃描多個包,中間使用半形逗號,隔開 --&gt

       

       

   

4.整合service

原文連結:http://www.apkbus.com/blog-810021-61733.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2310/viewspace-2814651/,如需轉載,請註明出處,否則將追究法律責任。