自定义MyBatisAutoConfiguration,MyBatis的配置从未如此简单过~(实现自己的 start)

本文介绍了如何基于BeanDefinitionRegistryPostProcessor接口自定义MyBatis的配置,只需在YAML中配置数据库连接信息、包路径和XML路径,简化了MyBatis的初始化过程。通过提供的GitHub项目地址和jar包链接,读者可以参考并学习如何在项目中应用此自定义配置,从而在启动时自动完成DataSource、SqlSessionFactory和Transaction的注入。
摘要由CSDN通过智能技术生成

项目 github地址:https://github.com/winterme/pkusoft-mybatis

jar 包地址:链接:https://pan.baidu.com/s/1MMsZgjbm9yKkn4GfcZ1WIQ   提取码:to0t 

 

在工作中,发现我们经理写的一个包很好用,就是只需要在 yml 上配置 数据库连接信息,包路径,xml路径,mybatis 就能跑了,很方便,也是也想自己写一个,参考了下经理的代码,自己写了个

其具体思路就是,实现 BeanDefinitionRegistryPostProcessor 接口,在 ioc注入的时候,读取 配置文件,进行动态注入。

注入方法和原来的java配置mybatis 一样,先创建 DataSource,然后 sqlSessionFactory,然后transaction。

yml 格式:

mybatis:
  datasource:
    config[0]:
      # druid 监控类
      type: com.alibaba.druid.pool.DruidDataSource
      # 数据库连接驱动
      driver-class-name: com.mysql.jdbc.Driver
      # 数据库连接地址
      url: jdbc:mysql://127.0.0.1:3306/zhangzq?useUnicode=true&characterEncoding=utf-8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=Hongkong&zeroDateTimeBehavior=convertToNull
      username: root
      password: xxxx
      # tkmybatis 的扫描器,不写默认 MyBatis 的扫描器
      mapper-scanner: tk.mybatis.spring.mapper.MapperScannerConfigurer
      # mapper.java 所在包
      base-package: com.zzq.zhangzq.mapper
      # mapper.xml 所在包
      mapper-location: classpath:com/zzq/zhangzq/mapper/*.xml

默认 0 为主数据源,其他的为从数据源。从 config[0] 开始,config[1],config[2]....

代码参考:

import com.alibaba.druid.pool.DruidDataSource;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.beans.factory.support.BeanDefiniti
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值