This is an automated email from the ASF dual-hosted git repository.

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new ddf0e2b  Fix readwrite-splitting example. (#14906)
ddf0e2b is described below

commit ddf0e2b8c1082cfce05caae33f42634a901b7d0a
Author: zhaojinchao <[email protected]>
AuthorDate: Thu Jan 20 13:57:01 2022 +0800

    Fix readwrite-splitting example. (#14906)
---
 ...ication-sharding-readwrite-splitting.properties | 10 +++++----
 ...ication-sharding-readwrite-splitting.properties | 10 +++++----
 .../application-sharding-readwrite-splitting.xml   | 14 ++++++++++--
 .../application-sharding-readwrite-splitting.xml   | 14 ++++++++++--
 ...-local-zookeeper-readwrite-splitting.properties |  7 +++---
 .../local/application-readwrite-splitting.xml      |  7 +++++-
 .../application-readwrite-splitting.properties     |  7 +++---
 .../application-readwrite-splitting.properties     |  7 +++---
 .../META-INF/application-readwrite-splitting.xml   |  7 +++++-
 .../META-INF/application-readwrite-splitting.xml   |  7 +++++-
 ...plication-shadow-readwrite-splitting.properties |  8 +++----
 .../application-shadow-readwrite-splitting.xml     |  7 +++++-
 .../src/main/resources/application.properties      |  7 +++---
 .../src/main/resources/application.xml             |  7 +++++-
 .../src/main/resources/application.properties      |  9 ++++----
 .../src/main/resources/application.properties      |  9 ++++----
 .../src/main/resources/application.properties      |  9 ++++----
 .../src/main/resources/application.xml             | 26 +++++-----------------
 .../src/main/resources/application.xml             | 24 ++++++--------------
 .../src/main/resources/application.xml             | 23 +++++--------------
 .../resources/conf/config-readwrite-splitting.yaml |  8 +++----
 .../template/java/config/readwrite-splitting.ftl   |  5 ++++-
 .../resources/properties/readwrite-splitting.ftl   |  9 ++++----
 .../template/resources/xml/readwrite-splitting.ftl |  7 +++++-
 24 files changed, 139 insertions(+), 109 deletions(-)

diff --git 
a/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-boot-jpa-example/src/main/resources/application-sharding-readwrite-splitting.properties
 
b/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-boot-jpa-example/src/main/resources/application-sharding-readwrite-splitting.properties
index d03c03f..72d98cd 100644
--- 
a/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-boot-jpa-example/src/main/resources/application-sharding-readwrite-splitting.properties
+++ 
b/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-boot-jpa-example/src/main/resources/application-sharding-readwrite-splitting.properties
@@ -87,9 +87,11 @@ 
spring.shardingsphere.rules.sharding.sharding-algorithms.t-order-inline.props.al
 
spring.shardingsphere.rules.sharding.sharding-algorithms.t-order-item-inline.type=INLINE
 
spring.shardingsphere.rules.sharding.sharding-algorithms.t-order-item-inline.props.algorithm-expression=t_order_item_$->{order_id
 % 2}
 
-spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.write-data-source-name=write-ds-0
-spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.read-data-source-names=write-ds-0-read-0,write-ds-0-read-1
-spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.write-data-source-name=write-ds-1
-spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.read-data-source-names=write-ds-1-read-0,write-ds-1-read-1
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.props.write-data-source-name=write-ds-0
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.props.read-data-source-names=write-ds-0-read-0,write-ds-0-read-1
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.props.write-data-source-name=write-ds-1
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.props.read-data-source-names=write-ds-1-read-0,write-ds-1-read-1
 
 spring.shardingsphere.props.sql-show=true
diff --git 
a/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-boot-mybatis-example/src/main/resources/application-sharding-readwrite-splitting.properties
 
b/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-boot-mybatis-example/src/main/resources/application-sharding-readwrite-splitting.properties
index 7d40215..3893b8e 100644
--- 
a/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-boot-mybatis-example/src/main/resources/application-sharding-readwrite-splitting.properties
+++ 
b/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-boot-mybatis-example/src/main/resources/application-sharding-readwrite-splitting.properties
@@ -88,7 +88,9 @@ 
spring.shardingsphere.rules.sharding.sharding-algorithms.t-order-inline.props.al
 
spring.shardingsphere.rules.sharding.sharding-algorithms.t-order-item-inline.type=INLINE
 
spring.shardingsphere.rules.sharding.sharding-algorithms.t-order-item-inline.props.algorithm-expression=t_order_item_$->{order_id
 % 2}
 
-spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.write-data-source-name=write-ds-0
-spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.read-data-source-names=write-ds-0-read-0,
 write-ds-0-read-1
-spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.write-data-source-name=write-ds-1
-spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.read-data-source-names=write-ds-1-read-0,
 write-ds-1-read-1
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.props.write-data-source-name=write-ds-0
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-0.props.read-data-source-names=write-ds-0-read-0,
 write-ds-0-read-1
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.props.write-data-source-name=write-ds-1
+spring.shardingsphere.rules.readwrite-splitting.data-sources.ds-1.props.read-data-source-names=write-ds-1-read-0,
 write-ds-1-read-1
diff --git 
a/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-namespace-jpa-example/src/main/resources/META-INF/application-sharding-readwrite-splitting.xml
 
b/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-namespace-jpa-example/src/main/resources/META-INF/application-sharding-readwrite-splitting.xml
index 77de26d..4b01f12 100644
--- 
a/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-namespace-jpa-example/src/main/resources/META-INF/application-sharding-readwrite-splitting.xml
+++ 
b/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-namespace-jpa-example/src/main/resources/META-INF/application-sharding-readwrite-splitting.xml
@@ -147,8 +147,18 @@
         </sharding:broadcast-table-rules>
     </sharding:rule>
     <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_pr_ds_0" 
write-data-source-name="demo_write_ds_0" 
read-data-source-names="demo_write_ds_0_read_0, demo_write_ds_0_read_1" 
load-balance-algorithm-ref="randomStrategy" />
-        <readwrite-splitting:data-source-rule id="demo_pr_ds_1" 
write-data-source-name="demo_write_ds_1" 
read-data-source-names="demo_write_ds_1_read_0, demo_write_ds_1_read_1" 
load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_pr_ds_0" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_write_ds_0</prop>
+                <prop key="read-data-source-names">demo_write_ds_0_read_0, 
demo_write_ds_0_read_1</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
+        <readwrite-splitting:data-source-rule id="demo_pr_ds_1" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_write_ds_1</prop>
+                <prop key="read-data-source-names">demo_write_ds_1_read_0, 
demo_write_ds_1_read_1</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
     
     <shardingsphere:data-source id="shardingDataSource" 
data-source-names="demo_write_ds_0,demo_write_ds_1,demo_write_ds_0_read_0, 
demo_write_ds_0_read_1,demo_write_ds_1_read_0, demo_write_ds_1_read_1" 
rule-refs="shardingRule, readWriteSplittingRule">
diff --git 
a/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/META-INF/application-sharding-readwrite-splitting.xml
 
b/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/META-INF/application-sharding-readwrite-splitting.xml
index 5c4fd89..98f8860 100644
--- 
a/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/META-INF/application-sharding-readwrite-splitting.xml
+++ 
b/examples/shardingsphere-jdbc-example/mixed-feature-example/sharding-readwrite-splitting-example/sharding-readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/META-INF/application-sharding-readwrite-splitting.xml
@@ -121,8 +121,18 @@
         </sharding:broadcast-table-rules>
     </sharding:rule>
     <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_pr_ds_0" 
write-data-source-name="demo_write_ds_0" 
read-data-source-names="demo_write_ds_0_read_0, demo_write_ds_0_read_1" 
load-balance-algorithm-ref="randomStrategy" />
-        <readwrite-splitting:data-source-rule id="demo_pr_ds_1" 
write-data-source-name="demo_write_ds_1" 
read-data-source-names="demo_write_ds_1_read_0, demo_write_ds_1_read_1" 
load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_pr_ds_0" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_write_ds_0</prop>
+                <prop key="read-data-source-names">demo_write_ds_0_read_0, 
demo_write_ds_0_read_1</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
+        <readwrite-splitting:data-source-rule id="demo_pr_ds_1" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_write_ds_1</prop>
+                <prop key="read-data-source-names">demo_write_ds_1_read_0, 
demo_write_ds_1_read_1</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
     
     <shardingsphere:data-source id="shardingDataSource" 
data-source-names="demo_write_ds_0,demo_write_ds_0_read_0,demo_write_ds_0_read_1,demo_write_ds_1,demo_write_ds_1_read_0,demo_write_ds_1_read_1"
 rule-refs="shardingRule, readWriteSplittingRule">
diff --git 
a/examples/shardingsphere-jdbc-example/single-feature-example/cluster-mode-example/cluster-mode-spring-boot-mybatis-example/src/main/resources/application-local-zookeeper-readwrite-splitting.properties
 
b/examples/shardingsphere-jdbc-example/single-feature-example/cluster-mode-example/cluster-mode-spring-boot-mybatis-example/src/main/resources/application-local-zookeeper-readwrite-splitting.properties
index c6787f5..139f078 100644
--- 
a/examples/shardingsphere-jdbc-example/single-feature-example/cluster-mode-example/cluster-mode-spring-boot-mybatis-example/src/main/resources/application-local-zookeeper-readwrite-splitting.properties
+++ 
b/examples/shardingsphere-jdbc-example/single-feature-example/cluster-mode-example/cluster-mode-spring-boot-mybatis-example/src/main/resources/application-local-zookeeper-readwrite-splitting.properties
@@ -41,7 +41,8 @@ 
spring.shardingsphere.datasource.read-ds-1.driver-class-name=com.mysql.jdbc.Driv
 spring.shardingsphere.datasource.read-ds-1.username=root
 spring.shardingsphere.datasource.read-ds-1.password=
 
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.write-data-source-name=write-ds
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.read-data-source-names=read-ds-0,read-ds-1
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.write-data-source-name=write-ds
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.read-data-source-names=read-ds-0,read-ds-1
 
spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
+spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
diff --git 
a/examples/shardingsphere-jdbc-example/single-feature-example/cluster-mode-example/cluster-mode-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-readwrite-splitting.xml
 
b/examples/shardingsphere-jdbc-example/single-feature-example/cluster-mode-example/cluster-mode-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-readwrite-splitting.xml
index 9ad109b..baaf480 100644
--- 
a/examples/shardingsphere-jdbc-example/single-feature-example/cluster-mode-example/cluster-mode-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-readwrite-splitting.xml
+++ 
b/examples/shardingsphere-jdbc-example/single-feature-example/cluster-mode-example/cluster-mode-spring-namespace-mybatis-example/src/main/resources/META-INF/zookeeper/local/application-readwrite-splitting.xml
@@ -58,7 +58,12 @@
     <readwrite-splitting:load-balance-algorithm id="randomStrategy" 
type="RANDOM" />
     
     <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" 
write-data-source-name="demo_write_ds" read-data-source-names="demo_read_ds_0, 
demo_read_ds_1" load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_ds" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_write_ds</prop>
+                <prop key="read-data-source-names">demo_read_ds_0, 
demo_read_ds_1</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
     
     <shardingsphere:data-source id="readWriteSplittingDataSource" 
data-source-names="demo_write_ds, demo_read_ds_0, demo_read_ds_1" 
rule-refs="readWriteSplittingRule">
diff --git 
a/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-boot-jpa-example/src/main/resources/application-readwrite-splitting.properties
 
b/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-boot-jpa-example/src/main/resources/application-readwrite-splitting.properties
index 42f5d6d..6022858 100644
--- 
a/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-boot-jpa-example/src/main/resources/application-readwrite-splitting.properties
+++ 
b/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-boot-jpa-example/src/main/resources/application-readwrite-splitting.properties
@@ -35,7 +35,8 @@ 
spring.shardingsphere.datasource.read-ds-1.driver-class-name=com.mysql.jdbc.Driv
 spring.shardingsphere.datasource.read-ds-1.username=root
 spring.shardingsphere.datasource.read-ds-1.password=
 
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.write-data-source-name=write-ds
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.read-data-source-names=read-ds-0,read-ds-1
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.write-data-source-name=write-ds
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.read-data-source-names=read-ds-0,read-ds-1
 
spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
+spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
diff --git 
a/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-boot-mybatis-example/src/main/resources/application-readwrite-splitting.properties
 
b/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-boot-mybatis-example/src/main/resources/application-readwrite-splitting.properties
index 42f5d6d..6022858 100644
--- 
a/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-boot-mybatis-example/src/main/resources/application-readwrite-splitting.properties
+++ 
b/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-boot-mybatis-example/src/main/resources/application-readwrite-splitting.properties
@@ -35,7 +35,8 @@ 
spring.shardingsphere.datasource.read-ds-1.driver-class-name=com.mysql.jdbc.Driv
 spring.shardingsphere.datasource.read-ds-1.username=root
 spring.shardingsphere.datasource.read-ds-1.password=
 
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.write-data-source-name=write-ds
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.read-data-source-names=read-ds-0,read-ds-1
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.write-data-source-name=write-ds
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.read-data-source-names=read-ds-0,read-ds-1
 
spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
+spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
diff --git 
a/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-namespace-jpa-example/src/main/resources/META-INF/application-readwrite-splitting.xml
 
b/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-namespace-jpa-example/src/main/resources/META-INF/application-readwrite-splitting.xml
index 6af0d4b..db448ff 100644
--- 
a/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-namespace-jpa-example/src/main/resources/META-INF/application-readwrite-splitting.xml
+++ 
b/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-namespace-jpa-example/src/main/resources/META-INF/application-readwrite-splitting.xml
@@ -78,7 +78,12 @@
     <readwrite-splitting:load-balance-algorithm id="randomStrategy" 
type="RANDOM" />
     
     <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" 
write-data-source-name="demo_write_ds" read-data-source-names="demo_read_ds_0, 
demo_read_ds_1" load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_ds" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_write_ds</prop>
+                <prop key="read-data-source-names">demo_read_ds_0, 
demo_read_ds_1</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
     
     <shardingsphere:data-source id="readWriteSplittingDataSource" 
data-source-names="demo_write_ds, demo_read_ds_0, demo_read_ds_1" 
rule-refs="readWriteSplittingRule" />
diff --git 
a/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/META-INF/application-readwrite-splitting.xml
 
b/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/META-INF/application-readwrite-splitting.xml
index 60113ff..c4c57f7 100644
--- 
a/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/META-INF/application-readwrite-splitting.xml
+++ 
b/examples/shardingsphere-jdbc-example/single-feature-example/readwrite-splitting-example/readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/META-INF/application-readwrite-splitting.xml
@@ -59,7 +59,12 @@
     <readwrite-splitting:load-balance-algorithm id="randomStrategy" 
type="RANDOM" />
     
     <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" 
write-data-source-name="demo_write_ds" read-data-source-names="demo_read_ds_0, 
demo_read_ds_1" load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_ds" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_write_ds</prop>
+                <prop key="read-data-source-names">demo_read_ds_0, 
demo_read_ds_1</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
     
     <shardingsphere:data-source id="readWriteSplittingDataSource" 
data-source-names="demo_write_ds, demo_read_ds_0, demo_read_ds_1" 
rule-refs="readWriteSplittingRule" />
diff --git 
a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-readwrite-splitting.properties
 
b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-readwrite-splitting.properties
index 7667aef..08a5b30 100644
--- 
a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-readwrite-splitting.properties
+++ 
b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-boot-mybatis-example/src/main/resources/application-shadow-readwrite-splitting.properties
@@ -41,11 +41,11 @@ 
spring.shardingsphere.datasource.shadow-read-ds.driver-class-name=com.mysql.jdbc
 spring.shardingsphere.datasource.shadow-read-ds.username=root
 spring.shardingsphere.datasource.shadow-read-ds.password=
 
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.write-data-source-name=shadow-data-source-write
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.read-data-source-names=shadow-data-source-read
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.write-data-source-name=shadow-data-source-write
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.read-data-source-names=shadow-data-source-read
 
spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
+spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
 
 
spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-write.source-data-source-name=write-ds
 
spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-write.shadow-data-source-name=shadow-write-ds
diff --git 
a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-readwrite-splitting.xml
 
b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-readwrite-splitting.xml
index 3a1eed7..5201ed5 100644
--- 
a/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-readwrite-splitting.xml
+++ 
b/examples/shardingsphere-jdbc-example/single-feature-example/shadow-example/shadow-spring-namespace-mybatis-example/src/main/resources/META-INF/application-shadow-readwrite-splitting.xml
@@ -68,7 +68,12 @@
     <readwrite-splitting:load-balance-algorithm id="randomStrategy" 
type="RANDOM" />
 
     <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" 
write-data-source-name="write_ds" read-data-source-names="read_ds" 
load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_ds" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">write_ds</prop>
+                <prop key="read-data-source-names">read_ds</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
 
     <shadow:shadow-algorithm id="user-id-insert-match-algorithm" 
type="REGEX_MATCH">
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-mixed-example/shardingsphere-jdbc-memory-local-mixed-spring-boot-starter-jdbc-example/src/main/resources/application.properties
 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-mixed-example/shardingsphere-jdbc-memory-local-mixed-spring-boot-starter-j
 [...]
index 7f9e8f6..4a9151a 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-mixed-example/shardingsphere-jdbc-memory-local-mixed-spring-boot-starter-jdbc-example/src/main/resources/application.properties
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-mixed-example/shardingsphere-jdbc-memory-local-mixed-spring-boot-starter-jdbc-example/src/main/resources/application.properties
@@ -68,10 +68,11 @@ 
spring.shardingsphere.rules.sharding.sharding-algorithms.t-order-item-inline.typ
 
spring.shardingsphere.rules.sharding.sharding-algorithms.t-order-item-inline.props.algorithm-expression=t_order_item_$->{order_id
 % 2}
 
 spring.shardingsphere.rules.sharding.key-generators.snowflake.type=SNOWFLAKE
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.write-data-source-name=ds-0
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.read-data-source-names=ds-1,ds-2
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.write-data-source-name=ds-0
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.read-data-source-names=ds-1,ds-2
 
spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
+spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
 spring.shardingsphere.rules.encrypt.encryptors.phone-encryptor.type=AES
 
spring.shardingsphere.rules.encrypt.encryptors.phone-encryptor.props.aes-key-value=123456
 
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-mixed-example/shardingsphere-jdbc-memory-local-mixed-spring-namespace-jdbc-example/src/main/resources/application.xml
 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-mixed-example/shardingsphere-jdbc-memory-local-mixed-spring-namespace-jdbc-example/s
 [...]
index e09f0c2..7955845 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-mixed-example/shardingsphere-jdbc-memory-local-mixed-spring-namespace-jdbc-example/src/main/resources/application.xml
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-mixed-example/shardingsphere-jdbc-memory-local-mixed-spring-namespace-jdbc-example/src/main/resources/application.xml
@@ -108,7 +108,12 @@
     <readwrite-splitting:load-balance-algorithm id="randomStrategy" 
type="RANDOM" />
     
     <readwrite-splitting:rule id="readwriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" 
write-data-source-name="ds_0" read-data-source-names="ds_1, ds_2" 
load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_ds" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">ds_0</prop>
+                <prop key="read-data-source-names">ds_1, ds_2</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
     
     <encrypt:encrypt-algorithm id="phone_encryptor" type="AES">
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-boot-starter-jdbc-example/src/main/resources/application.properties
 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdb
 [...]
index fe3cd9b..a58bdcb 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-boot-starter-jdbc-example/src/main/resources/application.properties
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-boot-starter-jdbc-example/src/main/resources/application.properties
@@ -37,7 +37,8 @@ 
spring.shardingsphere.datasource.ds-2.driver-class-name=com.mysql.jdbc.Driver
 spring.shardingsphere.datasource.ds-2.username=root
 spring.shardingsphere.datasource.ds-2.password=root
 
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.write-data-source-name=ds-0
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.read-data-source-names=ds-1,ds-2
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
\ No newline at end of file
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.tyoe=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.write-data-source-name=ds-0
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.read-data-source-names=ds-1,ds-2
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
+spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
\ No newline at end of file
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-boot-starter-jpa-example/src/main/resources/application.properties
 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc
 [...]
index 8f73d90..515520b 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-boot-starter-jpa-example/src/main/resources/application.properties
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-boot-starter-jpa-example/src/main/resources/application.properties
@@ -41,7 +41,8 @@ 
spring.shardingsphere.datasource.ds-2.driver-class-name=com.mysql.jdbc.Driver
 spring.shardingsphere.datasource.ds-2.username=root
 spring.shardingsphere.datasource.ds-2.password=root
 
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.write-data-source-name=ds-0
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.read-data-source-names=ds-1,ds-2
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
\ No newline at end of file
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.write-data-source-name=ds-0
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.read-data-source-names=ds-1,ds-2
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
+spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
\ No newline at end of file
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-boot-starter-mybatis-example/src/main/resources/application.properties
 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-
 [...]
index 74e1d48..f983b13 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-boot-starter-mybatis-example/src/main/resources/application.properties
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-boot-starter-mybatis-example/src/main/resources/application.properties
@@ -39,7 +39,8 @@ 
spring.shardingsphere.datasource.ds-2.driver-class-name=com.mysql.jdbc.Driver
 spring.shardingsphere.datasource.ds-2.username=root
 spring.shardingsphere.datasource.ds-2.password=root
 
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.write-data-source-name=ds-0
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.read-data-source-names=ds-1,ds-2
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
\ No newline at end of file
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.write-data-source-name=ds-0
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.read-data-source-names=ds-1,ds-2
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
+spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
\ No newline at end of file
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-namespace-jdbc-example/src/main/resources/application.xml
 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-l
 [...]
index 5d3c543..c2ca860 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-namespace-jdbc-example/src/main/resources/application.xml
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-namespace-jdbc-example/src/main/resources/application.xml
@@ -18,36 +18,17 @@
 
 <beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xmlns:p="http://www.springframework.org/schema/p";
        xmlns:context="http://www.springframework.org/schema/context";
-       xmlns:tx="http://www.springframework.org/schema/tx";
        
xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource";
-       
xmlns:sharding="http://shardingsphere.apache.org/schema/shardingsphere/sharding";
        
xmlns:readwrite-splitting="http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting";
-       
xmlns:encrypt="http://shardingsphere.apache.org/schema/shardingsphere/encrypt";
-       
xmlns:shadow="http://shardingsphere.apache.org/schema/shardingsphere/shadow";
-       
xmlns:database-discovery="http://shardingsphere.apache.org/schema/shardingsphere/database-discovery";
-       
xmlns:sql-parser="http://shardingsphere.apache.org/schema/shardingsphere/sql-parser";
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                            
http://www.springframework.org/schema/beans/spring-beans.xsd
                            http://www.springframework.org/schema/context
                            
http://www.springframework.org/schema/context/spring-context.xsd
-                           http://www.springframework.org/schema/tx
-                           
http://www.springframework.org/schema/tx/spring-tx.xsd
                            
http://shardingsphere.apache.org/schema/shardingsphere/datasource
                            
http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sharding
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding.xsd
                            
http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting
                            
http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting/readwrite-splitting.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/encrypt
-                           
http://shardingsphere.apache.org/schema/shardingsphere/encrypt/encrypt.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/shadow
-                           
http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/database-discovery
-                           
http://shardingsphere.apache.org/schema/shardingsphere/database-discovery/database-discovery.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sql-parser 
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd
                            ">
     <context:annotation-config />
     <context:component-scan 
base-package="org.apache.shardingsphere.example.readwrite.splitting.spring.namespace.jdbc"/>
@@ -75,7 +56,12 @@
     <readwrite-splitting:load-balance-algorithm id="randomStrategy" 
type="RANDOM" />
     
     <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" 
write-data-source-name="demo_ds_0" read-data-source-names="demo_ds_1, 
demo_ds_2" load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_ds" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_ds_0</prop>
+                <prop key="read-data-source-names">demo_ds_1, demo_ds_2</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
     
     <shardingsphere:data-source id="dataSource" data-source-names="demo_ds_0, 
demo_ds_1, demo_ds_2" rule-refs="readWriteSplittingRule" />
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-namespace-jpa-example/src/main/resources/application.xml
 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-lo
 [...]
index 76a807c..b15e1d9 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-namespace-jpa-example/src/main/resources/application.xml
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-namespace-jpa-example/src/main/resources/application.xml
@@ -22,12 +22,7 @@
        xmlns:context="http://www.springframework.org/schema/context";
        xmlns:tx="http://www.springframework.org/schema/tx";
        
xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource";
-       
xmlns:sharding="http://shardingsphere.apache.org/schema/shardingsphere/sharding";
        
xmlns:readwrite-splitting="http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting";
-       
xmlns:encrypt="http://shardingsphere.apache.org/schema/shardingsphere/encrypt";
-       
xmlns:shadow="http://shardingsphere.apache.org/schema/shardingsphere/shadow";
-       
xmlns:database-discovery="http://shardingsphere.apache.org/schema/shardingsphere/database-discovery";
-       
xmlns:sql-parser="http://shardingsphere.apache.org/schema/shardingsphere/sql-parser";
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                            
http://www.springframework.org/schema/beans/spring-beans.xsd
                            http://www.springframework.org/schema/context
@@ -36,18 +31,8 @@
                            
http://www.springframework.org/schema/tx/spring-tx.xsd
                            
http://shardingsphere.apache.org/schema/shardingsphere/datasource
                            
http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sharding
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding.xsd
                            
http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting
                            
http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting/readwrite-splitting.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/encrypt
-                           
http://shardingsphere.apache.org/schema/shardingsphere/encrypt/encrypt.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/shadow
-                           
http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/database-discovery
-                           
http://shardingsphere.apache.org/schema/shardingsphere/database-discovery/database-discovery.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sql-parser 
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd
                            ">
     <context:annotation-config />
     <context:component-scan 
base-package="org.apache.shardingsphere.example.readwrite.splitting.spring.namespace.jpa"/>
@@ -85,13 +70,18 @@
         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
         <property name="jdbcUrl" 
value="jdbc:mysql://localhost:3306/demo_ds_2?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
         <property name="username" value="root"/>
-        <property name="password" value=""/>
+        <property name="password" value="root"/>
     </bean>
     
     <readwrite-splitting:load-balance-algorithm id="randomStrategy" 
type="RANDOM" />
     
     <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" 
write-data-source-name="demo_ds_0" read-data-source-names="demo_ds_1, 
demo_ds_2" load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_ds" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_ds_0</prop>
+                <prop key="read-data-source-names">demo_ds_1, demo_ds_2</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
     
     <shardingsphere:data-source id="dataSource" data-source-names="demo_ds_0, 
demo_ds_1, demo_ds_2" rule-refs="readWriteSplittingRule" />
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/application.xml
 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memor
 [...]
index 085b65e..ee445c2 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/application.xml
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-jdbc-memory-local-example/shardingsphere-jdbc-memory-local-readwrite-splitting-example/shardingsphere-jdbc-memory-local-readwrite-splitting-spring-namespace-mybatis-example/src/main/resources/application.xml
@@ -18,16 +18,10 @@
 
 <beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xmlns:p="http://www.springframework.org/schema/p";
        xmlns:context="http://www.springframework.org/schema/context";
        xmlns:tx="http://www.springframework.org/schema/tx";
        
xmlns:shardingsphere="http://shardingsphere.apache.org/schema/shardingsphere/datasource";
-       
xmlns:sharding="http://shardingsphere.apache.org/schema/shardingsphere/sharding";
        
xmlns:readwrite-splitting="http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting";
-       
xmlns:encrypt="http://shardingsphere.apache.org/schema/shardingsphere/encrypt";
-       
xmlns:shadow="http://shardingsphere.apache.org/schema/shardingsphere/shadow";
-       
xmlns:database-discovery="http://shardingsphere.apache.org/schema/shardingsphere/database-discovery";
-       
xmlns:sql-parser="http://shardingsphere.apache.org/schema/shardingsphere/sql-parser";
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                            
http://www.springframework.org/schema/beans/spring-beans.xsd
                            http://www.springframework.org/schema/context
@@ -36,18 +30,8 @@
                            
http://www.springframework.org/schema/tx/spring-tx.xsd
                            
http://shardingsphere.apache.org/schema/shardingsphere/datasource
                            
http://shardingsphere.apache.org/schema/shardingsphere/datasource/datasource.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sharding
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sharding/sharding.xsd
                            
http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting
                            
http://shardingsphere.apache.org/schema/shardingsphere/readwrite-splitting/readwrite-splitting.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/encrypt
-                           
http://shardingsphere.apache.org/schema/shardingsphere/encrypt/encrypt.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/shadow
-                           
http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/database-discovery
-                           
http://shardingsphere.apache.org/schema/shardingsphere/database-discovery/database-discovery.xsd
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sql-parser 
-                           
http://shardingsphere.apache.org/schema/shardingsphere/sql-parser/sql-parser.xsd
                            ">
     <context:annotation-config />
     <context:component-scan 
base-package="org.apache.shardingsphere.example.readwrite.splitting.spring.namespace.mybatis"/>
@@ -75,7 +59,12 @@
     <readwrite-splitting:load-balance-algorithm id="randomStrategy" 
type="RANDOM" />
     
     <readwrite-splitting:rule id="readWriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" 
write-data-source-name="demo_ds_0" read-data-source-names="demo_ds_1, 
demo_ds_2" load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_ds" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">demo_ds_0</prop>
+                <prop key="read-data-source-names">demo_ds_1, demo_ds_2</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>
     
     <shardingsphere:data-source id="dataSource" data-source-names="demo_ds_0, 
demo_ds_1, demo_ds_2" rule-refs="readWriteSplittingRule" />
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-proxy-standalone-file-xa-bitronix-example/shardingsphere-proxy-standalone-file-xa-bitronix-readwrite-splitting-example/src/main/resources/conf/config-readwrite-splitting.yaml
 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-proxy-standalone-file-xa-bitronix-example/shardingsphere-proxy-standalone-file-xa-bitronix-readwrite-splitting-example/src/main/resources/conf/co
 [...]
index 18cb0a6..9fa550a 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-proxy-standalone-file-xa-bitronix-example/shardingsphere-proxy-standalone-file-xa-bitronix-readwrite-splitting-example/src/main/resources/conf/config-readwrite-splitting.yaml
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generated/shardingsphere-proxy-standalone-file-xa-bitronix-example/shardingsphere-proxy-standalone-file-xa-bitronix-readwrite-splitting-example/src/main/resources/conf/config-readwrite-splitting.yaml
@@ -50,10 +50,10 @@ rules:
   - !READWRITE_SPLITTING
     dataSources:
       pr_ds:
-        writeDataSourceName: write_ds
-        readDataSourceNames:
-          - read_ds_0
-          - read_ds_1
+        type: Static
+        props:
+          write-data-source-name: write_ds
+          read-data-source-names: read_ds_0, read_ds_1
         loadBalancerName: read_balance
     
     loadBalancers:
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/java/config/readwrite-splitting.ftl
 
b/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/java/config/readwrite-splitting.ftl
index 7be9be8..cae5244 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/java/config/readwrite-splitting.ftl
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/java/config/readwrite-splitting.ftl
@@ -16,7 +16,10 @@
   -->
     
     private ReadwriteSplittingRuleConfiguration 
createReadwriteSplittingRuleConfiguration() {
+        Properties props = new Properties();
+        props.setProperties("write-data-source-name", "ds_0");
+        props.setProperties("read-data-source-names", "ds_1, ds_2");
         ReadwriteSplittingDataSourceRuleConfiguration dataSourceConfig = new 
ReadwriteSplittingDataSourceRuleConfiguration(
-                "ds_0", "", "ds_0", Arrays.asList("ds_1", "ds_2"), null);
+                "ds_0", "Static", props, null);
         return new 
ReadwriteSplittingRuleConfiguration(Collections.singleton(dataSourceConfig), 
Collections.emptyMap());
     }
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/resources/properties/readwrite-splitting.ftl
 
b/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/resources/properties/readwrite-splitting.ftl
index e273c1d..ee7dc21 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/resources/properties/readwrite-splitting.ftl
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/resources/properties/readwrite-splitting.ftl
@@ -15,7 +15,8 @@
   ~ limitations under the License.
   -->
 
-spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.write-data-source-name=ds-0
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.read-data-source-names=ds-1,ds-2
-spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
\ No newline at end of file
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.type=Static
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.props.write-data-source-name=ds-0
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds..props.read-data-source-names=ds-1,ds-2
+spring.shardingsphere.rules.readwrite-splitting.data-sources.pr_ds.load-balancer-name=round_robin
+spring.shardingsphere.rules.readwrite-splitting.load-balancers.round_robin.type=ROUND_ROBIN
\ No newline at end of file
diff --git 
a/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/resources/xml/readwrite-splitting.ftl
 
b/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/resources/xml/readwrite-splitting.ftl
index 044628b..04b3744 100644
--- 
a/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/resources/xml/readwrite-splitting.ftl
+++ 
b/examples/shardingsphere-sample/shardingsphere-example-generator/src/main/resources/template/resources/xml/readwrite-splitting.ftl
@@ -18,5 +18,10 @@
     <readwrite-splitting:load-balance-algorithm id="randomStrategy" 
type="RANDOM" />
     
     <readwrite-splitting:rule id="readwriteSplittingRule">
-        <readwrite-splitting:data-source-rule id="demo_ds" 
write-data-source-name="ds_0" read-data-source-names="ds_1, ds_2" 
load-balance-algorithm-ref="randomStrategy" />
+        <readwrite-splitting:data-source-rule id="demo_ds" type="Static" 
load-balance-algorithm-ref="randomStrategy">
+            <props>
+                <prop key="write-data-source-name">ds_0</prop>
+                <prop key="read-data-source-names">ds_1, ds_2</prop>
+            </props>
+        </readwrite-splitting:data-source-rule>
     </readwrite-splitting:rule>

Reply via email to