Shardingsphere得⼊⼝配置类
,其中有四点着重分析⼀下。
① 此处表明,⾃动装配在 DataSourceAutoConfiguration 这个⾃动装配类之前完成。也就是Shardingsphere创建得数据源就是全局得数据源,项⽬只要涉及到对数据库得任何操作都会经过ShardingDataSource得这⼀层处理(④中创建得)。正是基于此,为后⾯得数据分⽚以及⼀些扩展埋下基础。还有⼀点就是,如果我们项⽬中使⽤了Mybatis这个ORM框架的话,会发现Mybatis得starter启动配置类是在 DataSourceAutoConfiguration 装配之后再进⾏装配得,如图:
Mybatis⼊⼝配置类
那么此时Mybatis使⽤得数据源就是 Shardingsphere配置得 ShardingDataSource。
② 将之前配置得规则映射到此配置⽂件中,为创建数据源得过程提供配置信息。
③ dataSourceMap 对象存放得是配置得所有数据源映射信息,为后⾯获取数据库连接以及数据分⽚提供基础能⼒。
④ 通过 ShardingDataSourceFactory 这个⼯⼚类来创建 ShardingDataSource数据源,
ShardingDataSource得内部结构
,创建数据源得过程中,有两步很关键:
① 初始化路由装饰器(路由引擎,SPI得⽅式,⽤户可以扩展)、创建SQL改写上下⽂装饰器(改写引擎,同上)、创建结果处理引擎(归并引擎,⽤于对查询结果合并处理,同上)
AbstractRuntimeContext 抽象上下⽂得初始化
其中有⼏步关键点:
① 缓存整个分⽚规则,为后续得分⽚操作提供依据
② 缓存数据库类型,⽤于后续执⾏得时候加载对应数据库的元数据
执⾏引擎, 根据当前执⾏连接是否持有事务(根据我们⽬前得配置是没有使⽤得)来决定是异步执⾏还是同步执⾏,根据配置得 executor.size 决定创建多少个线程得线程池。 默认不配置得话,使⽤ cachepool,配置了就使⽤固定线程数得线程池。
,⽤于解析SQL为抽象语法树,解析过程分为词法解析和语法解析。从3.0之后解析会全⾯替换为 ANTLR。ShardingRuntimeContext-> MultipleDataSourcesRuntimeContext -> AbstractRuntimeContext->
>springboot推荐算法

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。