91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring,mybatis源碼深度解析

發布時間:2020-07-13 23:49:01 來源:網絡 閱讀:333 作者:e小調888 欄目:編程語言

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

  • 一種是基于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操作數據庫了。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安新县| 洪洞县| 南丰县| 盐山县| 巍山| 巴马| 吉林市| 桐庐县| 台中县| 海原县| 浦北县| 福建省| 吴忠市| 常山县| 历史| 新建县| 左贡县| 霍山县| 定结县| 尉氏县| 万山特区| 龙岩市| 万州区| 定日县| 白银市| 大同市| 榆社县| 太谷县| 通辽市| 汉阴县| 富宁县| 邻水| 长泰县| 济阳县| 宁武县| 综艺| 神农架林区| 桓仁| 嘉义市| 楚雄市| 宜黄县|