美文网首页
mybatis设计7-适配spring

mybatis设计7-适配spring

作者: xhrg | 来源:发表于2018-11-29 15:37 被阅读0次

mybatis适配spring具体可以参考mybatis-spring-1.3.2.jar

该适配jar的类非常少,主要的入口也是从使用出发:

org.mybatis.spring.mapper.MapperScannerConfigurer 该类实现了多个扩展点:BeanDefinitionRegistryPostProcessor, InitializingBean, ApplicationContextAware, BeanNameAware

  • BeanDefinitionRegistryPostProcessor

其中的核心是在postProcessBeanDefinitionRegistry。该方法来自于BeanDefinitionRegistryPostProcessor,其作用是动态添加bean到容器中,mybatis在这个方法中,拿到注入的一些sqlSessionFactory和sqlSessionTemplate和该方法的参数BeanDefinitionRegistry进行动态装在。该类把这些属性赋值给ClassPathMapperScanner,让该方法去执行实际代码。

  • ClassPathMapperScanner

该类集成了ClassPathBeanDefinitionScanner,这个类有点像是独立的类,可以做一些扫描代码。就好比是spring中的StringUtils类一样,你可以单独去使用。在该类里面,会优先调用super.doScan(basePackages);获得返回值后对其进行处理。比如说之前的beanClass是接口Mapper,这里则改为mapperFactoryBean(当bean配置的是FactoryBean的时候,beanFactory调用getBean获取的不是这个Bean的实例,而是该FactoryBean的getObject队形)

相关文章

网友评论

      本文标题:mybatis设计7-适配spring

      本文链接:https://www.haomeiwen.com/subject/yrrfcqtx.html