最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Mybatis,SpringMVC,Spring的介紹及聯(lián)系

 更新時間:2021年10月18日 11:41:58   作者:木澤銳  
這篇文章主要為大家詳細介紹了Java中Mybatis,SpringMVC,Spring的介紹及聯(lián)系,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、Mybatis

1、簡介

MyBatis 是一個基于 Java 的持久層框架,是對 jdbc 的封裝,它讓數(shù)據(jù)庫底層操作變的透明。Mybatis 的操作都是圍繞一個 sqlSessionFactory 實例展開的。Mybatis 通過配置文件關(guān)聯(lián)到各實體類的 Mapper 文件,Mapper 文件中配置了每個類對數(shù)據(jù)庫所需進行的 sql 語句映射。在每次與數(shù)據(jù)庫交互時,通過 sqlSessionFactory 拿到一個sqlSession,再執(zhí)行 sql 命令。在 Mybatis 中,sqlSessionFactory 可以看為一個數(shù)據(jù)庫連接池,并使用的單例模式;sqlSession 就相當(dāng)于一個數(shù)據(jù)庫連接,它存活在某個具體的業(yè)務(wù)請求中。 創(chuàng)建映射器 映射器是 Mybatis 中最重要、最復(fù)雜的組件,它由一個接口和對應(yīng)的 XML 文件(或注解組成)。

2、工作原理:

mybatis通過sqlSessionFactoryBuilder從mybatis-config.xml配置文件(如上圖第一步)中構(gòu)建出sqlSessionFactory(線程安全);然后調(diào)用sqlSessionFactory的openSession()方法直接開啟一個sqlSession,在通過sqlSession實例獲得Mapper.xml對象并運行Mapper.xml映射的sql語句,完成對數(shù)據(jù)庫的CRUD和事務(wù)提交,每完成一次操作之后sqlSession都需要關(guān)閉.

3、工作流程圖:

在這里插入圖片描述

二、SpringMVC

1、MVC工作原理:

M:Model(完成業(yè)務(wù)邏輯 Service/dao/entity/)

V:View(完成界面渲染 jsp/html)

C:Controller(控制器->類似于CPU 接受請求->調(diào)用M->返回V)

1.1、MVC工作原理圖:

  

2、SpringMVC工作原理

SpringMVC是一個MVC的開源框架,SpringMVC是Spring的一個后續(xù)產(chǎn)品,其實就是Spring在原有基礎(chǔ)上,又提供了web應(yīng)用的MVC模塊,可以簡單的把SpringMVC理解為是spring的一個模塊(類似AOP,IOC這樣的模塊),網(wǎng)絡(luò)上經(jīng)常會說SpringMVC和Spring無縫集成,其實SpringMVC就是Spring的一個子模塊,所以根本不需要同spring進行整合。

2.1、SpringMVC中的組件:

前端控制器(DispatcherServlet):接收請求,響應(yīng)結(jié)果,相當(dāng)于電腦的CPU。

處理器映射器(HandlerMapping):根據(jù)URL去查找處理器

處理器(Handler):(需要程序員去寫代碼處理邏輯的)

處理器適配器(HandlerAdapter):會把處理器包裝成適配器,這樣就可以支持多種類型的處理器,類比筆記本的適配器(適配器模式的應(yīng)用)

視圖解析器(ViewResovler):進行視圖解析,多返回的字符串,進行處理,可以解析成對應(yīng)的頁面

2.2、SpringMvc工作原理圖

在這里插入圖片描述

2.3、 SpringMvc工作流程

第一步:用戶發(fā)起請求到前端控制器(DispatcherServlet)

第二步:前端控制器請求處理器映射器(HandlerMapping)去查找處理器(Handler):通過xml配置或者注解進行查找

第三步:找到以后處理器映射器(HandlerMappping)像前端控制器返回執(zhí)行鏈(HandlerExecutionChain)

第四步:前端控制器(DispatcherServlet)調(diào)用處理器適配器(HandlerAdapter)去執(zhí)行處理器(Handler)

第五步:處理器適配器去執(zhí)行Handler

第六步:Handler執(zhí)行完給處理器適配器返回ModelAndView

第七步:處理器適配器向前端控制器返回ModelAndView

第八步:前端控制器請求視圖解析器(ViewResolver)去進行視圖解析

第九步:視圖解析器像前端控制器返回View

第十步:前端控制器對視圖進行渲染

第十一步:前端控制器向用戶響應(yīng)結(jié)果

2.4、 SpringMVC重點

在于它的流程和注解,包括控制器、視圖解析器、視圖等內(nèi)容;

三、Spring

1、簡介:

Spring是一種多層的J2EE應(yīng)用程序框架,其核心就是提供一種新的機制管理業(yè)務(wù)對象及其依賴關(guān)系。它是一種容器框架,用于創(chuàng)建bean,維護bean之間的關(guān)系,它可以管理web層,持久層,業(yè)務(wù)層等,可以配置各個層的組件并且維護各個層的關(guān)系

2、Spring原理:

內(nèi)部最核心的就是IOC了,動態(tài)注入,讓一個對象的創(chuàng)建不用new了,可以自動的生產(chǎn),這其實就是利用java里的反射,反射其實就是在運行時動態(tài)的去創(chuàng)建、調(diào)用對象,Spring就是在運行時,跟xml Spring的配置文件來動態(tài)的創(chuàng)建對象,和調(diào)用對象里的方法的 。

Spring還有一個核心就是AOP這個就是面向切面編程,可以為某一類對象 進行監(jiān)督和控制(也就是 在調(diào)用這類對象的具體方法的前后去調(diào)用你指定的 模塊)從而達到對一個模塊擴充的功能。這些都是通過 配置類達到的。

Spring目的:就是讓對象與對象(模塊與模塊)之間的關(guān)系沒有通過代碼來關(guān)聯(lián),都是通過配置類說明管理的(Spring根據(jù)這些配置 內(nèi)部通過反射去動態(tài)的組裝對象)

要記住:Spring是一個容器,凡是在容器里的對象才會有Spring所提供的這些服務(wù)和功能。

Spring里用的最經(jīng)典的一個設(shè)計模式就是:模板方法模式。(這里我都不介紹了,是一個很常用的設(shè)計模式), Spring里的配置是很多的,很難都記住,但是Spring里的精華也無非就是以上的兩點,把以上兩點跟理解了 也就基本上掌握了Spring.

3、Spring AOP與IOC

3.1、 IoC(Inversion of control): 控制反轉(zhuǎn)

1、IoC:

概念:控制權(quán)由對象本身轉(zhuǎn)向容器;由容器根據(jù)配置文件去創(chuàng)建實例并創(chuàng)建各個實例之間的依賴關(guān)系

核心:bean工廠;在Spring中,bean工廠創(chuàng)建的各個實例稱作bean

3.2、AOP(Aspect-Oriented Programming): 面向方面編程

1、 代理的兩種方式:

靜態(tài)代理:

  • 針對每個具體類分別編寫代理類;
  • 針對一個接口編寫一個代理類;

動態(tài)代理:

針對一個方面編寫一個InvocationHandler,然后借用JDK反射包中的Proxy類為各種接口動態(tài)生成相應(yīng)的代理類

動態(tài)代理知識補充:

不用寫代理類,虛擬機根據(jù)真實對象實現(xiàn)的接口產(chǎn)生一個類,通過類實例化一個動態(tài)代理,在實例化動態(tài)代理時將真實對象及裝備注入到動態(tài)代理中,向客戶端公開的是動態(tài)代理,當(dāng)客戶端調(diào)用動態(tài)代理方法時,動態(tài)代理根據(jù)類的反射得到真實對象的Method,調(diào)用裝備的invoke方法,將動態(tài)代理、

Method、方法參數(shù)傳與裝備的invoke方法,invoke方法在喚起method方法前或后做一些處理。

         1、產(chǎn)生動態(tài)代理的類:

                        java.lang.refect.Proxy

         2、裝備必須實現(xiàn)InvocationHandler接口實現(xiàn)invoke方法

3.3、spring的幾個階段:

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • java實現(xiàn)簡易外賣訂餐系統(tǒng)

    java實現(xiàn)簡易外賣訂餐系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)簡易外賣訂餐系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Java 1.0和Java 1.1 的IO類的比較

    Java 1.0和Java 1.1 的IO類的比較

    Java庫的IO分為輸入/輸出兩部分。早期的Java 1.0版本的輸入系統(tǒng)是InputStream及其子類,輸出系統(tǒng)是OutputStream及其子類。后來的Java 1.1版本對IO系統(tǒng)進行了重新設(shè)計。本分對此做了分析和比較,有利于學(xué)習(xí),最后給出了例子。
    2013-11-11
  • Java隊列數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)

    Java隊列數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)

    這篇文章主要介紹了Java隊列數(shù)據(jù)結(jié)構(gòu)的實現(xiàn),隊列是一種特殊的線性表,只允許在表的隊頭進行刪除操作,在表的后端進行插入操作,隊列是一個有序表先進先出,想了解更多相關(guān)資料的小伙伴可以參考下面文章的詳細內(nèi)容
    2021-12-12
  • 關(guān)于swagger配置及踩坑@Api參數(shù)postion無效解決接口排序問題

    關(guān)于swagger配置及踩坑@Api參數(shù)postion無效解決接口排序問題

    這篇文章主要介紹了關(guān)于swagger配置及踩坑@Api參數(shù)postion無效解決接口排序問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringCloud使用Feign文件上傳、下載

    SpringCloud使用Feign文件上傳、下載

    這篇文章主要為大家詳細介紹了SpringCloud使用Feign文件上傳、下載功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • SpringBoot+Websocket實現(xiàn)一個簡單的網(wǎng)頁聊天功能代碼

    SpringBoot+Websocket實現(xiàn)一個簡單的網(wǎng)頁聊天功能代碼

    本篇文章主要介紹了SpringBoot+Websocket實現(xiàn)一個簡單的網(wǎng)頁聊天功能代碼,具有一定的參考價值,有需要的可以了解一下
    2017-08-08
  • Java GZIPOutputStream流壓縮文件的操作

    Java GZIPOutputStream流壓縮文件的操作

    這篇文章主要介紹了Java GZIPOutputStream流壓縮文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java性能工具JMeter實現(xiàn)上傳與下載腳本編寫

    Java性能工具JMeter實現(xiàn)上傳與下載腳本編寫

    性能測試工作中,文件上傳也是經(jīng)常見的性能壓測場景之一,那么 JMeter 文件上傳下載腳本怎么做,本文詳細的來介紹一下,感興趣的可以了解一下
    2021-07-07
  • Java實力彈彈球?qū)崿F(xiàn)代碼

    Java實力彈彈球?qū)崿F(xiàn)代碼

    這篇文章主要為大家詳細介紹了Java實力彈彈球?qū)崿F(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 詳解Java Streams 中的異常處理

    詳解Java Streams 中的異常處理

    這篇文章主要介紹了Java Streams 中的異常處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論

达孜县| 凤冈县| 永清县| 平谷区| 浦县| 吉林市| 宜城市| 易门县| 富平县| 石泉县| 盐池县| 汉沽区| 曲水县| 剑阁县| 泸西县| 恩平市| 佛坪县| 兰考县| 江华| 宜城市| 罗山县| 黔东| 巢湖市| 达尔| 东海县| 怀宁县| 习水县| 蓝田县| 西藏| 鹤庆县| 开封县| 兴和县| 宁晋县| 丰城市| 霍城县| 永寿县| 太康县| 定边县| 绥棱县| 凤翔县| 龙里县|