数据源代码详解
数据源配置:
ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java
@Bean
@ConfigurationProperties("spring.datasource.druid.master")
public DataSource masterDataSource(DruidProperties druidProperties)
{
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return druidProperties.dataSource(dataSource);
}
@Bean
@ConfigurationProperties("spring.datasource.druid.slave")
@ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
public DataSource slaveDataSource(DruidProperties druidProperties)
{
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return druidProperties.dataSource(dataSource);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Bean(name = "dynamicDataSource")
@Primary
public DynamicDataSource dataSource(DataSource masterDataSource)
{
Map<Object, Object> targetDataSources = new HashMap<>();
targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
return new DynamicDataSource(masterDataSource, targetDataSources);
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
这段代码的作用是创建一个动态数据源DynamicDataSource
,主要包括将主数据源和从数据源放入一个映射中,供应用程序根据需要动态切换数据源。主数据源标记为@Primary
,在没有显式指定数据源时将作为默认的数据源。
具体配置
druidProperties.dataSource(dataSource);
1
ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java
上次更新: 2025/04/03, 11:07:08