application.yaml配置
server:
port: 3038
spring:
datasource:
learningdb:
jdbcUrl: jdbc:postgresql://localhost:5432/数据库名
driverClassName: org.postgresql.Driver
username: username
password: password
userdb:
jdbcUrl: jdbc:postgresql://localhost:5432/数据库名
driverClassName: org.postgresql.Driver
username: username
password: password
配置类:PgLearningDataSourceConfig
package com.deltaww.dkam.scheduler.config;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@Configuration
@MapperScan(basePackages = "com.deltaww.dkam.scheduler.repository.pg.mapper.learning", sqlSessionFactoryRef = "pgLearningSqlSessionFactory")
public class PgLearningDataSourceConfig {
@Bean(name = "pgLearningDataSource")
@ConfigurationProperties("spring.datasource.learningdb")
public DataSource dbDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "pgLearningSqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("pgLearningDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().
getResources("classpath*:com/deltaww/dkam/learning/mapper/*Mapper.xml"));
return sessionFactoryBean.getObject();
}
@Bean("pgLearningSqlSessionTemplate")
public SqlSessionTemplate learningSqlSessionTemplate(@Qualifier("pgLearningSqlSessionFactory") SqlSessionFactory sqlSessionFactory){
return new SqlSessionTemplate(sqlSessionFactory);
}
}
package com.deltaww.dkam.scheduler.config;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
@Configuration
@MapperScan(basePackages = "com.deltaww.dkam.scheduler.repository.pg.mapper.user", sqlSessionFactoryRef = "pgUserSqlSessionFactory")
public class PgUserDataSourceConfig {
@Bean(name = "pgUserDataSource")
@ConfigurationProperties("spring.datasource.userdb")
public DataSource dbDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "pgUserSqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("pgUserDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().
getResources("classpath*:com/deltaww/dkam/user/mapper/*Mapper.xml"));
return sessionFactoryBean.getObject();
}
@Bean("pgUserSqlSessionTemplate")
public SqlSessionTemplate userSqlSessionTemplate(@Qualifier("pgUserSqlSessionFactory") SqlSessionFactory sqlSessionFactory){
return new SqlSessionTemplate(sqlSessionFactory);
}
}
多数据源直接往后加就完事了