springboot+mybatis数据源动态切换与加载

springboot+mybatis数据源动态切换与加载,第1张

  对于动态切换数据源,需要一个类继承AbstractRoutingDataSource,继承该抽象类的时候,必须实现一个抽象方法:protected abstract Object determineCurrentLookupKey(),该方法用于指定到底需要使用哪一个数据源。

  自定义动态数据源类

  通过ThreadLocal维护一个全局唯一的map来实现数据源的动态切换

  通过AOP切面实现动态切换数据源,这里假设projectId与dataSourceId有对应关系

  新建DataSourceUtil类保存projectId与dataSourceId的对应关系

  springboot启动时的配置类配置默认datasource

  可以看到,已经实现了数据源的动态切换

完全不依靠xml文件,怎么配置m依赖包的引入。创建好maven项目之后,打开maven项目下的pom.xml文件,在配置文件中增加对mybatis包和mysql驱动包的依赖。在dependencies中增加对这两个包的配置即可自动将这两个包添加到项目中。

mybatis数据库配置。对于mybatis框架来说,首先需要配置的就是数据库的数据源配置以及采用何种开发模式的配置,对于mavne项目来说这些资源信息都需要配置在src/main/resources下面,对于普通的java项目则只需要配置在src下即可。ybatis 说是动态切换数据库,还是什么

<!-- 注解式事务管理 --

<tx:annotation-driven transaction-manager="transactionManager" /

<!-- 自动扫描 mybatis mapper接口 --

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"

<property name="basePackage" value="com.test.tt.mapper" /

<property name="sqlSessionFactory" ref="sqlSessionFactory"</property</bean<!-- 数据源2--

<!-- proxool连接池 --

<bean id="dataSource_d2" class="org.logicalcobwebs.proxool.ProxoolDataSource"

<property name="alias" value="${d2.alias}" /

<property name="driver" value="${driver}" /

<property name="driverUrl" value="${d2.driverUrl}" /

<property name="user" value="${d2.user}" /

<property name="password" value="${d2.password}" /

<property name="houseKeepingTestSql" value="${house-keeping-test-sql}" /

<property name="maximumConnectionCount" value="${maximum-connection-count}" /

<property name="minimumConnectionCount" value="${minimum-connection-count}" /

<property name="prototypeCount" value="${prototype-count}" /

<property name="simultaneousBuildThrottle" value="${simultaneous-build-throttle}" /

<property name="trace" value="${trace}" /</bean

<bean id="sqlSessionFactory_d2" class="org.mybatis.spring.SqlSessionFactoryBean"

<property name="dataSource" ref="dataSource_d2" /

<property name="configLocation" value="classpath:mybatis-d2-config.xml"</property</bean<bean id="transactionManager_d2"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager"

<property name="dataSource" ref="dataSource_d2" /</bean

<!-- 注解式事务管理 --


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6930635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存