【shardingsphere多数据源配置及跨库查询问题】

问题遇到的现象和发生背景
   我想用shardingsphere4.1.1的版本做多数据源配置,但是这些数据库都是不同业务的数据库,也就是表结构不一样
问题相关代码,请勿粘贴截图
   问题1:我现在不知道怎么配置才能指定某个数据库使用shardingsphere做分库逻辑,其他数据库使用spring.datasource初始化数据库
   问题2:若只使用shardingsphere初始化多个数据源,在同一个业务中有跨库查询时,是否每个表都要指定数据源,不是要怎么处理
  配置代码

spring加载的数据源配置
@Configuration
@ConditionalOnProperty(name = "datasource.memberCareDataSource.jdbc-url")
public class CommentDataSourceConfiguration {

@Bean("commentDataSource")
public static DataSource commentDataSource(MultipleDataSourceConfig multipleDataSourceConfig, JasyptConfig jasyptConfig) {
    HikariDataSource hikariDataSource = new HikariDataSource();
    BeanUtils.copyProperties(multipleDataSourceConfig.getMemberCareDataSource(), hikariDataSource);
    hikariDataSource.setUsername(JasyptUtil.decryption(hikariDataSource.getUsername(), jasyptConfig.getPassword()));
    hikariDataSource.setPassword(JasyptUtil.decryption(hikariDataSource.getPassword(), jasyptConfig.getPassword()));
    return hikariDataSource;
}

@Bean("sqlSessionFactoryComment")
public static SqlSessionFactory sqlSessionFactoryComment(@Qualifier("commentDataSource") DataSource dataSource) throws Exception {
    SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    bean.setDataSource(dataSource);
    bean.setTypeAliasesPackage("com.hworld.crm.member.comment.repository.entity");
    ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
    bean.setMapperLocations(resolver.getResources("classpath:/mapper/comment/*.xml"));

    bean.setPlugins(DataSourceConfigurationHelper.getPageInterceptorArray());
    return bean.getObject();
}

@Bean("commentScanner")
public static MapperScannerConfigurer commentScanner() {

    MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
    mapperScannerConfigurer.setBasePackage("com.hworld.crm.member.comment.repository.mapper");
    mapperScannerConfigurer.setSqlSessionTemplateBeanName("commentSqlSessionTemplate");
    return mapperScannerConfigurer;
}


@Bean("commentSqlSessionTemplate")
public static SqlSessionTemplate commentSqlSessionTemplate(@Qualifier("sqlSessionFactoryComment") SqlSessionFactory sqlSessionFactory) {
    return new SqlSessionTemplate(sqlSessionFactory);
}

@Bean(name = "commentDataSourceTransactionManager")
public static PlatformTransactionManager commentDataSourceTransactionManager(@Qualifier("commentDataSource") DataSource dataSource) {
    return new DataSourceTransactionManager(dataSource);
}

/**
 * 切面拦截规则
 */
@Bean(name = "commentPointcutAdvisor")
public static AspectJExpressionPointcutAdvisor commentPointcutAdvisor(@Qualifier("commentDataSourceTransactionManager") PlatformTransactionManager transactionManager) {
    AspectJExpressionPointcutAdvisor pointcutAdvisor = new AspectJExpressionPointcutAdvisor();
    pointcutAdvisor.setAdvice(DataSourceConfigurationHelper.buildTransactionInterceptor(transactionManager));
    pointcutAdvisor.setExpression("execution(public * com.hworld.crm.member.comment.biz..*.*(..))");
    return pointcutAdvisor;
}

datasource:
  globalDataSource:
    type: com.zaxxer.hikari.HikariDataSource
    jdbc-url: jdbc:mysql://testdb:55988/v31_cem_global_db?application_name=crm&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&autoReconnect=true
    username: zLHZOYHf2FBeS9fEK5VsGw==
    password: BG5GxsEhCDAectecwllh1L4mEGuGtNuN2k7YhPfnG/A=
    driver-class-name: com.mysql.cj.jdbc.Driver
    maximum-pool-size: 200
    minimum-idle: 20
    connection-timeout: 5000
    connection-test-query: select 1
  companyDataSource:
    type: com.zaxxer.hikari.HikariDataSource
    jdbc-url: jdbc:mysql://testdb:55988/v31_cem_company_db?application_name=crm&serverTimezone=Asia/Shanghai&characterEncoding=utf-8&autoReconnect=true
    username: zLHZOYHf2FBeS9fEK5VsGw==
    password: BG5GxsEhCDAectecwllh1L4mEGuGtNuN2k7YhPfnG/A=
    driver-class-name: com.mysql.cj.jdbc.Driver
    maximum-pool-size: 200
    minimum-idle: 20
    connection-timeout: 5000
    connection-test-query: select 1
spring:
  shardingsphere:
    props:
      sql.show: true
    datasource:
      names: ds2,ds7
    ds2:
       type: com.zaxxer.hikari.HikariDataSource
       jdbc-url: jdbc:mysql://testdb:55988/v31_cem_member_db?application_name=crm&serverTimezone=Asia/Shanghai&characterEncoding=utf-8
       username: ug_cem
       password: xyAnt3G40f5M5LeX
       driver-class-name: com.mysql.cj.jdbc.Driver
       maximum-pool-size: 200
       minimum-idle: 20
       connection-timeout: 5000
       connection-test-query: select 1
   ds7:
       type: com.zaxxer.hikari.HikariDataSource
       jdbc-url: jdbc:mysql://testdb:55988/v30_cem_member_db?application_name=crm&serverTimezone=Asia/Shanghai&characterEncoding=utf-8
       username: ug_cem
       password: xyAnt3G40f5M5LeX
       driver-class-name: com.mysql.cj.jdbc.Driver
       maximum-pool-size: 200
       minimum-idle: 20
       connection-timeout: 5000
       connection-test-query: select 1
运行结果及报错内容
我的解答思路和尝试过的方法
    我尝试过

1.spring原生数据源初始化所有,shardingsphere初始化部分。查询时不走shardingsphere初始化的数据源
2.spring和shardingsphere同时加载部分,会有循环引用的问题
3.只用shardingsphere初始化多数据源配置,查询时,跨库查询会出现当前库不存在另一个表的情况

我想要达到的结果

如果只是切换数据源,mybatis plus有个依赖可以直接搞定,或者AbstractRoutingDataSource,你非要用这个也行,就考验你grovvy的能力了,能不能写出够用的表达式来