YNZH's Blog

Mybatis通过动态代理Mapper接口代理类进行数据库访问

Spring中整合Mybatis应该如何将这个动态代理类注入Spring容器成为Bean呢

Spring中Bean的产生方式?

  1. 通过配置定义 产生BeanDefinition–>BeanFactoryPostProcessor–>Bean
  2. 在后置处理器中 自定义一个BeanDefinition设置并生成bean
  3. @Bean注意生成Bean(但只能生成一个)
  4. 自定义XxxFactoryBean实现接口FactoryBean接口,实现自定义的Bean
  5. 使用注解@Import,也会创建对象并注入容器中
  6. 通过DefaultListableBeanFactory注入。listableBeanFactory.registerSingleto(….)

如何整合?

  1. Mybatis使用@Import(MapperRegister.class 工厂bean生产创建逻辑负责的bean的工厂)
  2. 首先实现一个MapperFactoryBean类其实现了FactoryBean接口,可以通过构造方法传入不同的Mapper,然后利用SqlSession代理生产mapper代理对象.
  3. 实现MapperRegister类,这个类实现了ImportBeanDefinitionRegistrar接口

 评论


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为 次 。
载入天数...载入时分秒...