赞
踩
接上一篇,介绍下SpringBoot集成ShardingSphere,基于sharding-jdbc-spring-boot-starter依赖编写配置文件实现自动配置的集成方法,这种方法的优点是简单,缺点是不够灵活。
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.1.6.RELEASE</version>
- <relativePath/>
- </parent>
- <groupId>com.hyc</groupId>
- <artifactId>shard3-auto</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>shard3-auto</name>
- <description>springboot集成shardingshpere3自动配置</description>
-
- <properties>
- <java.version>1.8</java.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>2.0.1</version>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- <scope>runtime</scope>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-configuration-processor</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- <!-- shardingsphere start -->
- <dependency>
- <groupId>io.shardingsphere</groupId>
- <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
- <version>3.1.0</version>
- </dependency>
- <!-- shardingsphere end -->
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>3.9</version>
- </dependency>
- <dependency>
- <groupId>cn.hutool</groupId>
- <artifactId>hutool-all</artifactId>
- <version>4.5.13</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.58</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.1.17</version>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
-
- </project>

- sharding.jdbc.datasource.names=ds0,ds1
-
- sharding.jdbc.datasource.ds0.type=com.alibaba.druid.pool.DruidDataSource
- sharding.jdbc.datasource.ds0.url=jdbc:mysql://127.0.0.1:3306/test1?serverTimezone=GMT%2B8&useSSL=false
- sharding.jdbc.datasource.ds0.username=root
- sharding.jdbc.datasource.ds0.password=123456
-
- sharding.jdbc.datasource.ds1.type=com.alibaba.druid.pool.DruidDataSource
- sharding.jdbc.datasource.ds1.url=jdbc:mysql://127.0.0.1:3306/test2?serverTimezone=GMT%2B8&useSSL=false
- sharding.jdbc.datasource.ds1.username=root
- sharding.jdbc.datasource.ds1.password=123456
-
- sharding.jdbc.config.sharding.tables.t_user.actual-data-nodes=ds$->{0..1}.t_user_$->{0..1}
- sharding.jdbc.config.sharding.tables.t_user.table-strategy.inline.sharding-column=gender
- sharding.jdbc.config.sharding.tables.t_user.table-strategy.inline.algorithm-expression=t_user_$->{gender == 1 ? 0 : 1}
- sharding.jdbc.config.sharding.tables.t_user.key-generator-column-name=user_id
- sharding.jdbc.config.sharding.tables.t_user.key-generator-class-name=com.hyc.keygen.SnowflakeShardingKeyGenerator
-
- sharding.jdbc.config.sharding.tables.t_user_address.actual-data-nodes=ds$->{0..1}.t_user_address_$->{0..1}
- sharding.jdbc.config.sharding.tables.t_user_address.table-strategy.inline.sharding-column=gender
- sharding.jdbc.config.sharding.tables.t_user_address.table-strategy.inline.algorithm-expression=t_user_address_$->{gender == 1 ? 0 : 1}
- sharding.jdbc.config.sharding.tables.t_user_address.key-generator-column-name=address_id
- sharding.jdbc.config.sharding.tables.t_user_address.key-generator-class-name=com.hyc.keygen.SnowflakeShardingKeyGenerator
-
- sharding.jdbc.config.sharding.tables.t_order.actual-data-nodes=ds$->{0..1}.t_order_$->{0..1}
- sharding.jdbc.config.sharding.tables.t_order.table-strategy.inline.sharding-column=order_id
- sharding.jdbc.config.sharding.tables.t_order.table-strategy.inline.algorithm-expression=t_order_$->{order_id % 2}
- sharding.jdbc.config.sharding.tables.t_order.key-generator-column-name=order_id
- sharding.jdbc.config.sharding.tables.t_order.key-generator-class-name=com.hyc.keygen.SnowflakeShardingKeyGenerator
-
- sharding.jdbc.config.sharding.tables.t_order_item.actual-data-nodes=ds$->{0..1}.t_order_item_$->{0..1}
- sharding.jdbc.config.sharding.tables.t_order_item.table-strategy.inline.sharding-column=order_id
- sharding.jdbc.config.sharding.tables.t_order_item.table-strategy.inline.algorithm-expression=t_order_item_$->{order_id % 2}
- sharding.jdbc.config.sharding.tables.t_order_item.key-generator-column-name=order_item_id
- sharding.jdbc.config.sharding.tables.t_order_item.key-generator-class-name=com.hyc.keygen.SnowflakeShardingKeyGenerator
-
- sharding.jdbc.config.sharding.binding-tables[0]=t_user,t_user_address
- sharding.jdbc.config.sharding.binding-tables[1]=t_order,t_order_item
-
- sharding.jdbc.config.sharding.broadcast-tables=t_product
-
- sharding.jdbc.config.sharding.default-database-strategy.standard.sharding-column=user_id
- sharding.jdbc.config.sharding.default-database-strategy.standard.precise-algorithm-class-name=com.hyc.dbstrategy.IdShardingAlgorithm
-
- sharding.jdbc.config.props.sql.show=true
-
- snow.work.id=1
- snow.datacenter.id=2
-
- #sql日志
- logging.level.com.hyc.dao=debug
-
- #actuator端口
- management.server.port=9001
- #开放所有页面节点 默认只开启了health、info两个节点
- management.endpoints.web.exposure.include=*
- #显示健康具体信息 默认不会显示详细信息
- management.endpoint.health.show-details=always
-
- mybatis.configuration.map-underscore-to-camel-case=true
- mybatis.type-aliases-package=com.hyc.entity
- mybatis.mapper-locations=classpath:mappers/*.xml

以上就配置完成了,测试结果和上一篇一样
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。