多数据源配置
yml配置文件如下:
server: port: 8080 spring: datasource: service1: jdbc-url: jdbc:mysql://localhost:3306/dataBase1?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: username password: 'password' driver-class-name: com.mysql.cj.jdbc.Driver service2: jdbc-url: jdbc:mysql://localhost:3306/dataBase2?characterEncoding=utf-8&useSSL=false&servertimezone=cst&nullCatalogMeansCurrent=true username: username password: 'password' driver-class-name: com.mysql.cj.jdbc.Driver
config配置类的代码如下(以其中一个数据库为例):
@Configuration
@MapperScan(basePackages = {"com.pandul.secret.technology.common.mapper"}, sqlSessionFactoryRef = "service1DataSourceFactory")
public class Service1DataSourceConfig {
/**
* 源,prefix要和yml文件里的一致
*/
@Bean(name = "service1DataSource")
@ConfigurationProperties(prefix = "spring.datasource.service1")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
/**
* 工厂
*/
@Bean("service1DataSourceFactory")
@DependsOn("service1DataSource")
public SqlSessionFactory dataSourceFactory() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource());
return factoryBean.getObject();
}
/**
* 模板
*/
@Bean("service1SqlSessionTemplate")
@DependsOn("service1DataSourceFactory")
public SqlSessionTemplate sqlSessionTemplate(
@Qualifier("Service1DataSourceFactory") SqlSessionFactory sessionfactory) {
return new SqlSessionTemplate(sessionfactory);
}
// 创建事务管理器
@Bean(name = "service1TransactionManager")
public PlatformTransactionManager txManager(@Qualifier("service1DataSource") DataSource service1DataSource) {
return new DataSourceTransactionManager(service1DataSource);
}
}
扩展(可以从nacos读取):
spring:
profiles:
active: '@profiles.active@'
application:
name: serviceName
cloud:
nacos:
discovery:
server-addr: sys-nacos:8848
config:
server-addr: sys-nacos:8848
file-extension: yml
group: GROUPNAME
prefix: serviceName
ext-config[0]:
data-id: common-datasource.yml
group: FAWKES_SYS_GROUP
refresh: true
nacos上数据库配置就从common-datasource.yml里读取
posted on 2023-11-30 17:22 nitianxiaozi 阅读(26) 评论(0) 收藏 举报
浙公网安备 33010602011771号