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执行;
标签:mapper,调用,spring,通过,胡乱,mybatis,mappermethod,beandefinition From: https://www.cnblogs.com/yangxijun/p/18033876