# dynamic-datasource **Repository Path**: zhszstudy/dynamic-datasource ## Basic Information - **Project Name**: dynamic-datasource - **Description**: SpringBoot+Mybatis-Plus实现动态数据源 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-02-23 - **Last Updated**: 2025-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dynamic-datasource #### 介绍 SpringBoot+Mybatis-Plus实现动态数据源 **详见:**https://blog.csdn.net/zhouDonQuixote/article/details/145816875?spm=1001.2014.3001.5502 #### 使用说明 1. 引入依赖: ```xml com.zhou dynamic-datasource-spring-boot-starter 1.0 ``` 2. 排除自动装配数据源配置: ```java @SpringBootApplication(exclude = {DruidDataSourceAutoConfigure.class, DataSourceAutoConfiguration.class}) ``` 3. yml文件配置: ```yml server: port: 8348 dynamic: jdbc: datasource: default: master list: master,slave master: url: jdbc:mysql://localhost:3306/datasource_test1?useSSL=false&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.jdbc.Driver type-class-name: com.alibaba.druid.pool.DruidDataSource pool: max-active: 10 initial-size: 1 max-wait: 30000 min-idle: 1 time-between-eviction-runs-millis: 30000 min-evictable-idle-time-millis: 150000 validation-query: select 'x' test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-open-prepared-statements: 20 filters: stat, wall testConnectionOnCheckout: false testConnectionOnCheckin: true idleConnectionTestPeriod: 3600 slave: url: jdbc:mysql://localhost:3306/datasource_test2?useSSL=false&serverTimezone=UTC username: root password: your_password driver-class-name: com.mysql.jdbc.Driver type-class-name: com.alibaba.druid.pool.DruidDataSource pool: max-active: 20 initial-size: 1 max-wait: 3000 min-idle: 1 time-between-eviction-runs-millis: 6000 min-evictable-idle-time-millis: 3000 validation-query: select 'x' test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-open-prepared-statements: 20 filters: stat, wall testConnectionOnCheckout: false testConnectionOnCheckin: true idleConnectionTestPeriod: 360 druid: monitor: web-stat-filter: # 是否开启配置 enabled: true url-pattern: /* exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" stat-view-servlet: url-pattern: /druid/* reset-enable: false # 是否开启配置 enabled: true login-username: admin login-password: admin # mybatis 配置 mybatis: scanner: mapperLocations: classpath:mapper/*Mapper.xml # 实体类别名配置 typeAliasesPackage: com.zhou.model mapUnderscoreToCamelCase: true logImpl: org.apache.ibatis.logging.stdout.StdOutImpl ``` 4. 方法使用: ```java @DataSourceType(dataSourceName = "slave") @Override public List queryStudentFromSlave() { return baseMapper.selectList(null); } ```