Tres pasos para obtener la configuración de múltiples fuentes de datos

1 Modifique el archivo application.yaml

spring:
  datasource:
    scm:
      driver-class-name: com.mysql.jdbc.Driver
      jdbc-url: 
      username: 
      password: 
    sentry:
      driver-class-name: com.mysql.jdbc.Driver
      jdbc-url: 
      username: 
      password: 

Nota:

1. scm y sentry definen nombres por sí mismos, los nombres definidos aquí se usarán en el archivo de configuración más adelante

2. Preste atención a jdbc-url en lugar de url

3. Preste especial atención al formato de la sangría.

2. Cree dos carpetas nuevas en las carpetas dao y mapper respectivamente

Nota: Posteriormente, la capa dao y los archivos xml de diferentes fuentes de datos se colocan debajo de los archivos correspondientes.

3. Agregue los archivos de configuración de las dos fuentes de datos en el paquete de configuración

@Configuration
@MapperScan(basePackages = "com.fan.bigdata.dao.scm", sqlSessionTemplateRef = "scmSqlSessionTemplate")
public class ScmSourceConfig {
    @Bean(name = "scm")
    @ConfigurationProperties(prefix = "spring.datasource.scm")
    @Primary
    public DataSource testDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean(name = "scmSqlSessionFactory")
    @Primary
    public SqlSessionFactory testSqlSessionFactory(@Qualifier("scm") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:/mapper/scm/*.xml"));
        return bean.getObject();
    }

    @Bean(name = "scmTransactionManager")
    @Primary
    public DataSourceTransactionManager testTransactionManager(@Qualifier("scm") DataSource dataSource) {
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean(name = "scmSqlSessionTemplate")
    @Primary
    public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("scmSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

Nota:

1. Reemplace el valor de basePackages en la línea 2 con su ruta de dao correspondiente, y la línea 16 con su ruta de mapeador correspondiente

2. Reemplaza todos los scm con tu propio nombre

3. El archivo SentrySourceConfig es básicamente el mismo que el archivo ScmSourceConfig. Reemplace el scm correspondiente con sentry. Además, mi scm es la biblioteca principal, por lo que hay una anotación @primary. Para otras bibliotecas, simplemente elimine @primary

+++++++++++++++++++++++++++++++++++
+ Si tiene alguna pregunta, por favor + Q: 1602701980 discutan juntos +
++++ +++++++++++++++++++++++++++++++

Supongo que te gusta

Origin blog.csdn.net/shenyuye/article/details/107818789
Recomendado
Clasificación