mybatis+spring源码解析(动态代理 spring初始化)

本文纯手敲,转载请联系。

首先描述一下,用注解的方式在spring中使用mybatis的用法:

1.spring配置文件中配置dao层的注解,注意dao只有接口,无实现。
2.书写xml文件
代码实例:

这样,在其他类中注入dao,spring便可以自己生成实现类,并调用相应的sql,本文主要讲解spring-mabatis是如何实现这个过程的?

首先,IAdminGroupMybatisDao是被spring管理了,那么注入到其他类中进行使用的时候,他到底有没有实现类,实现类是什么,他是怎么和实现类进行关联的?
显然,实现类是肯定有的,我们跟踪依稀查询,看一下实现类到底是什么东西?

看到没有,他是mapperproxy对象,来看看mapperproxy有事什么?
 
mapperProxy是一个代理类,那么在这里他又是代理的哪个类呢?
跟踪源代码可以发现mapperProxy代理的实际上是MapperFactoryBean
那么?到底是在哪里进行代理绑定的呢?跟踪代理进下面这个类:
这就是我们熟悉的jdk动态代理的代码?
还剩最后一个疑问?什么时候每个接口的代理交给spring进行了管理。这里感兴趣的可以可以跟踪spring容器的初始化过程,是动态修改了beandefines.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值