配置文件
配置文件:
spring.datasource.app.oracle.jdbc-url =jdbc:oracle:thin:@knight.com:1521/RAC
spring.datasource.app.oracle.username = app
spring.datasource.app.oracle.password = 1234
spring.datasource.app.oracle.driver-class-Name = oracle.jdbc.driver.OracleDriver
spring.datasource.crm.oracle.jdbc-url =jdbc:oracle:thin:@knight.com:1521/RAC
spring.datasource.crm.oracle.username = crm
spring.datasource.crm.oracle.password = 1234
spring.datasource.crm.oracle.driver-class-Name = oracle.jdbc.driver.OracleDriver
config配置:
@Configuration
public class DataSourceConfig {
@Bean(name = "appDataSource")
@Primary
@ConfigurationProperties(prefix="spring.datasource.app.oracle")
public DataSource appDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "crmDataSource")
@ConfigurationProperties(prefix = "spring.datasource.crm.oracle")
public DataSource crmDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name="appJdbcTemplate")
public JdbcTemplate appJdbcTemplate (
@Qualifier("appDataSource") DataSource appDataSource ) {
return new JdbcTemplate(appDataSource);
}
@Bean(name = "crmJdbcTemplate")
public JdbcTemplate crmJdbcTemplate(
@Qualifier("crmDataSource") DataSource crmDataSource){
return new JdbcTemplate(crmDataSource);
}
}
在controller中引用:
@Autowired
@Qualifier("appJdbcTemplate")
public JdbcTemplate appJdbcTemplate;
@Autowired
@Qualifier("crmJdbcTemplate")
public JdbcTemplate crmJdbcTemplate;
动态数据源
使用步骤
1、maven引入包。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
2、引入配置。
mysql示例。
spring:
datasource:
dynamic:
primary: master # 设置默认的数据源或者数据源组,默认值即为master
datasource:
master:
url: jdbc:mysql://localhost:3306/master_db
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
slave:
url: jdbc:mysql://localhost:3306/slave_db
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
如果是在之前项目基础上改,那么:
(1)
spring.datasource
替换为:
spring.datasource.dynamic.datasource.master
(2)
然后再加这一句。
spring.datasource.dynamic.primary=master
3、Mapper配置数据源。
@DS("master") // 如果不写,则是默认的
private UserMapper userMapper;
报错 dynamic-datasource can not find primary datasource
不用怀疑,就是没配置好,或者配置未生效。