spring,mybatis源碼深度解析

Mybatis整合spring,主要通過兩種途徑:一種是基于xml配置的,一種基于java config 配置。

河南網站制作公司哪家好,找創(chuàng)新互聯!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、成都響應式網站建設公司等網站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯公司2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創(chuàng)新互聯

  • 一種是基于xml配置的。這種方式通過解析xml,生成bean。主要是通過擴展spirng?NamespaceHandlerSupport類型來實現自定義解析Mybatis的xml配置。Mybatis相關實現主要提現的類NamespaceHandler、MapperScannerBeanDefinitionParser。

  • 一種基于java config 配置。這種方式通過注解MapperScan,讓spring容器掃描到注解。Mybatis相關實現主要體現的類:注解@interface??MapperScan、MapperScannerRegistrar。


????????這兩種方法的實現都是通過Mybatis的ClassPathMapperScanner類向容器中注冊bean的。

????????那這個ClassPathMapperScanner掃描到Mybatis的mapper接口,是如何注冊實例的呢,接口又怎么會實例呢。關鍵代碼處

?

1

2

3

4

??//?the?mapper?interface?is?the?original?class?of?the?bean

????????//?but,?the?actual?class?of?the?bean?is?MapperFactoryBean

????????definition.getPropertyValues().add("mapperInterface",?definition.getBeanClassName());

????????definition.setBeanClass(MapperFactoryBean.class);

? ??其實是通過更改注冊容器中bean的beanClass屬性為MapperFactoryBean(工廠bean)生成實例的。容易中注冊的bean其實是工廠bean,spring中的工廠bean獲得實例是調用工廠方法獲得。

MapperFactoryBean的功能是:

/**

?* BeanFactory that enables injection of MyBatis mapper interfaces. It can be set up with a

?* SqlSessionFactory or a pre-configured SqlSessionTemplate.

看一下這個spring工廠bean生成實例的最主要代碼:?

?

1

2

3

public?T?getObject()?throws?Exception?{

????return?getSqlSession().getMapper(this.mapperInterface);

??}

?生成實例的時候,通過這個函數整合到了mybatis操作數據庫的接口。

剩下的那就是mybatis操作數據庫了。

文章標題:spring,mybatis源碼深度解析
鏈接分享:http://www.muchs.cn/article0/gcehoo.html

成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站設計、營銷型網站建設、網站內鏈、搜索引擎優(yōu)化小程序開發(fā)、網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

外貿網站建設