在没有使用Spring Boot的情况下,可以通过配置多个数据源来实现多数据源的初始化。以下是一种常见的实现方式:
下面是一个示例代码:
// 数据源配置类
public class DataSourceConfig {
// 数据库1的配置
@Bean
public DataSource dataSource1() {
// 创建并配置数据源对象
return new DataSource();
}
// 数据库2的配置
@Bean
public DataSource dataSource2() {
// 创建并配置数据源对象
return new DataSource();
}
}
// 数据源工厂类
public class DataSourceFactory {
// 根据数据源类型创建数据源对象
public static DataSource createDataSource(String type) {
if ("dataSource1".equals(type)) {
return new DataSourceConfig().dataSource1();
} else if ("dataSource2".equals(type)) {
return new DataSourceConfig().dataSource2();
}
return null;
}
}
// 数据源持有类
public class DataSourceHolder {
private static final ThreadLocal<String> dataSourceHolder = new ThreadLocal<>();
// 设置当前线程使用的数据源
public static void setDataSource(String dataSource) {
dataSourceHolder.set(dataSource);
}
// 获取当前线程使用的数据源
public static String getDataSource() {
return dataSourceHolder.get();
}
// 清除当前线程使用的数据源
public static void clearDataSource() {
dataSourceHolder.remove();
}
}
// 数据源切换类
public class DataSourceSwitcher {
// 切换到指定的数据源
public static void switchTo(String dataSource) {
DataSourceHolder.setDataSource(dataSource);
}
// 切换回默认的数据源
public static void switchToDefault() {
DataSourceHolder.clearDataSource();
}
}
使用时,可以在需要使用不同数据源的地方调用DataSourceSwitcher.switchTo()
方法切换数据源,然后在使用完毕后调用DataSourceSwitcher.switchToDefault()
方法切换回默认数据源。
这种方式可以实现在没有使用Spring Boot的情况下初始化多个数据源。在实际应用中,可以根据具体需求进行适当的调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云