Java 我必须在基于SpringMVC的web应用程序中添加Springboot动态数据源实现

Java 我必须在基于SpringMVC的web应用程序中添加Springboot动态数据源实现,java,spring-boot,jdbctemplate,Java,Spring Boot,Jdbctemplate,我在Springboot中为我的客户机编写了一个小型多租户应用程序,它根据租户的请求动态切换数据库连接。我使用了spring框架的AbstractRoutingDataSource API 类别1:代码示例 public class CustomRoutingDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurr

我在Springboot中为我的客户机编写了一个小型多租户应用程序,它根据租户的请求动态切换数据库连接。我使用了spring框架的AbstractRoutingDataSource API

类别1:代码示例

 public class CustomRoutingDataSource extends AbstractRoutingDataSource {
                @Override
                protected Object determineCurrentLookupKey() {
                    ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();    
     if(attr!=null) {
                String tenantId = attr.getRequest().getParameter("tenantId");    
              return tenantId;
            }else{
                return "tenantId1";            
            }
        }
    }
类别2:示例代码

 public class DataSourceMap {
    public static Map<Object, Object> getDataSourceHashMap() {
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/db1);
        dataSource.setUsername("root");
        dataSource.setPassword("root");


        DriverManagerDataSource dataSource1 = new DriverManagerDataSource();
        dataSource1.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource1.setUrl("jdbc:mysql://localhost:3306/db2");
        dataSource1.setUsername("root");
        dataSource1.setPassword("root");
    }
}
公共类数据源映射{
公共静态映射getDataSourceHashMap(){
setDriverClassName(“com.mysql.jdbc.Driver”);
setUrl(“jdbc:mysql://localhost:3306/db1);
dataSource.setUsername(“根”);
dataSource.setPassword(“根”);
DriverManager数据源dataSource1=新的DriverManager数据源();
dataSource1.setDriverClassName(“com.mysql.jdbc.Driver”);
dataSource1.setUrl(“jdbc:mysql://localhost:3306/db2");
dataSource1.setUsername(“根”);
dataSource1.setPassword(“根”);
}
}
Tomcat/Server.xml

<GlobalNamingResources>
    <Resource name="jdbc/my_datasource"
                  global="jdbc/my_datasource"
                  factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
                  auth="Container"
                  type="javax.sql.DataSource"             
                  username="root"
                  password="root"
                  driverClassName="oracle.jdbc.driver.OracleDriver"
                  url="jdbc:oracle:thin:@//localhost:3306/myDB"
    </Resource>
</GlobalNamingResources>