需要某个服务的数据库采用了分库分表的方法,在代码中要使用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} # 分库策略表达式
1877

被折叠的 条评论
为什么被折叠?



