Spring Boot项目中集成sharding-jdbc-spring-boot-starter和druid-spring-boot-starter的方法

需要某个服务的数据库采用了分库分表的方法,在代码中要使用sharding-jdbc配置所有数据库,同时数据库连接池欲使用druid,当然为了简便,我们只想使用官方提供的sharding-jdbc-spring-boot-starter和druid-spring-boot-starter,那么下面的方法将是有用的。

一、在pom文件中引入依赖

           <dependency>
				<groupId>org.apache.shardingsphere</groupId>
				<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
				<version>${shardingsphere.version}</version>
			</dependency>
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>druid-spring-boot-starter</artifactId>
				<version>${druid.version}</version>
			</dependency>

二、此处是最关键的一步,其实,也只此一步,在启动时排除DataSourceAutoConfiguration.class 和 DruidDataSourceAutoConfigure.class,代码如下

spring:
  autoconfigure:
    exclude:
    - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
    - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure

d

三、在yaml配置中配置Sharding-jdbc和druid,比如password可以使用druid的数据库密码加密方式。

spring:
  shardingsphere:
    props:
      sql:
        show: false # 是否开启sql日志输出
    datasource:
      names: fect
      fect:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/fect?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
        username: root
        password: nSaQMKh5H8dbui1b9awQZQxTSXhvEqCGDg2IeVB4aQVbJAv67KC64HspX2M2U3MdqaPOZr/3RlsG3G11/Kg4tw==
        connectionProperties: config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKGxePOlgF0hwcWeYUUlCNm4UCUeTm4yKDzk3Q0q4/4eCz3MtV1FpkTl3EHg8PaAraq7yQakAWkE0BCjJWf+7JcCAwEAAQ==;
        initialSize: 5
        minIdle: 5
        maxActive: 8
        maxWait: 10000
        validationQuery: SELECT 1
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        filters: config
      binding-tables: user
      default-database-strategy: # 分库策略
        inline:
          sharding-column: id # 分片路由标准
          algorithm-expression: fect${id % 2} # 分库策略表达式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值