1.  项目启动时 会通过配置构建configuration, 解析*mapper.xml文件,生成mappedstatement[mapperinterface + methodName]; 

2.  通过MapperRegistry注mapper, 通过MappereRroxyFactory生成MapperProxy[jdk动态代理],添加到mapperregistry中;

3. 当调用mapper接口时,通过调用生成的mapperProxy,为每一个mapper接口方法生成一个mappermethod, 通过mappermethod绑定mappedstatement; 调用mappermethod的execute方法来执行;

4. 如何作为spring的bean?    成为bean无非就是 通过 BeanDefinitionRegistry注册beandefinition,通过包扫描[ClassPathMapperScanner]到mapper,为每个mapper创建一个beandefinition,通过设置beandefinition属性将其注册为mapperfactorybean, 注册到spring中; 当调用mapperfactorybean的getobject方法时,从MapperRegistry获取mapperproxy执行;

posted on 2024-02-26 11:01  yang希军  阅读(25)  评论(0)    收藏  举报