个人博客地址:https://alexaccele.github.io/
由于在springboot2.0中配置多数据源时遇到了很多问题,也看了许多大牛的博客最终解决了问题,于是在这里记录一下我的解决过程。
配置文件中的url应改用jdbc-url
在最开始时我配置的是url,结果会出现 jdbcUrl is required with driverClassName的错误
下面是正确的配置
spring:
datasource:
primary:
jdbc-url: jdbc:mysql://localhost:3306/moneysaller?useUnicode=true&characterEncoding=utf-8&useSSL=true
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
backup:
jdbc-url: jdbc:mysql://localhost:3306/moneysaller-backup?useUnicode=true&characterEncoding=utf-8&useSSL=true
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
配置类中注意使用@Primary注解
下面是在一个统一配置类中注入主从两个DataSource,注意在主DataSource上标注@Primary注解
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.context.annotation.Primary;
import javax.sql.DataSource;
@Configuration
public class DataAccessConfiguration {
@Bean
@Primary
@ConfigurationProperties("spring.datasource.primary")
public Dat