Java,SpringBoot实现动态切换数据源,数据源信息来源:yml+MySQL。动态加载时机自定义。切换时机方法调用前后,各线程分别切换。
别的动态切换已经很多了。我这里的需求是用户可选择数据源。
不废话,上代码:
首先application.yml中配置主数据库,配置通用即可。没有影响。这个主数据库中包换了其他数据源的配置信息。需要保存的信息如下:
连接方式可选择默认hikariCP,可以选择其他连接如druid,其他连接方式构造连接对象的代码需自行查找。
禁用SpringBoot的数据源自动配置
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
因为我们需要一个@Configration,用于在继承SpringBoot默认连接对象前,显式的加载配置,这样我们才可以直接使用这个连接对象做些事。
@Configuration
public class DynamicDataSourceConfig {
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
@Value("${spring.datasource.url}")
private Str