1.シャーディング-対応のJDBCリサーチコード - 独立した読み取りおよび書き込み
1.1。第一入口
ソースの入り口を探します
- これは、ロード、クラスspringbootローディング設定プロパティを取り囲む
spring.shardingsphere.datasource.names
地図貯蔵容器を横断する、データ・ソース構成を - あることがわかる
@ConditionalOnProperty(prefix = "spring.shardingsphere", name = "enabled", havingValue = "true", matchIfMissing = true)
記述がポンポンの共有-JDBCを引用している限り、プロパティ、デフォルトが初期化に直接ロードされます 4つのプロパティクラスをロードするような全電荷
//分片属性配置
private final SpringBootShardingRuleConfigurationProperties shardingProperties;
//主从属性配置
private final SpringBootMasterSlaveRuleConfigurationProperties masterSlaveProperties;
//加密属性配置
private final SpringBootEncryptRuleConfigurationProperties encryptProperties;
//额外属性配置(比如sql是否打印)
private final SpringBootPropertiesConfigurationProperties propMapProperties;
ファイルを表示した後、我々は、おそらくどこロードされてロードから構成プロパティのプロセスを知っています
1.2。小道具
どこで、どのようにそれを使用するためにカンマを小道具に使用する場所を見つける暴行、メインプロパティマスター・スレーブ構成からわかるのですか?
私はこのクラスを見つけました:
精通していないsql.show
、これはSQLディスプレイ構成の例の公式サイトで、設定はフルネームであるはい、spring.shardingsphere.props.sql.show = true
他の構成がある説明ができ、などスレッドの最大数、接続要求の最大数かどうか、単純なSQL、として、このクラスで見つけることができます通常はデフォルト値で、自分の目で確かめてください
1.3。データソース分離
- 特定の選択をデータソースのマスタ・スレーブ環境、?
選択されたデータソースを終了し、その特定のクエリ構文解析プロセスMyBatisの袋の実装であります
1.4。sql.show
ここでは、見て取るsql.shows
ルート方法を入力し、上記のタイプに続いて、それがどのように動作するかを、
SQL行う判断、およびソースパラメータを印刷するかどうかのルートパケットにされshowSQL
、それを埋めるためで来てたときに、このパラメータ?1.3のスクリーンショットは、次のように、不完全な文章を読み取り示します
masterSlaveRouter = new MasterSlaveRouter(connection.getMasterSlaveDataSource().getMasterSlaveRule(),
connection.getMasterSlaveDataSource().getShardingProperties().<Boolean>getValue(ShardingPropertiesConstant.SQL_SHOW));
で、それを理解するMasterSlaveRouter
ことで、クラスのインスタンス化ShardingPropertiesConstant.SQL_SHOW
注入が来たが、ShardingPropertiesConstant
この時間1.2クラスは、すでに言及されて