思路
1.引入单独的spring包和mybatis包,不引入spring和mybatis的整合包
2.自定义扫描器(参考spring的bean扫描器)将需要mybatis动态代理的mapper接口扫描出来
3.将扫描到的接口注入到spring的bean中,保证依赖注入时可以正常使用
技术点
1.spring和mybatis的基础知识
2.spring中FactoryBean的合理应用(FactoryBean)
3.spring中spring扫描器的合理应用(ClassPathBeanDefinitionScanner)
4.spring中spring动态注册器的合理应用(ImportBeanDefinitionRegistrar)
5.使用不同BeanDefinition定义Bean
注意点
1.实现FactoryBean接口的对象注入到Bean容器中会生成两个Bean对象,分别为:
工厂对象(实现了FactoryBean接口的对象)和最终对象(FactoryBean生产出来的对象或者说是FactoryBean中getObject()方法的返回对象)
工厂对象获取方式:context.getBean(“&beam名称”)
最终对象获取方式:context.getBean(“bean名称”")
注:context为spring的上下文。
2.在扫描的时候需要设置扫描器的包包过滤器,spring原来的扫描器将接口过滤掉了
源码
gitee地址:https://gitee.com/zpf2019/spring-mybatis-study.git
朝露滴透荷香,清风拂过山岗。
黑八度的肤色成了初夏的印章。
------初夏