Java 我必须在基于SpringMVC的web应用程序中添加Springboot动态数据源实现
我在Springboot中为我的客户机编写了一个小型多租户应用程序,它根据租户的请求动态切换数据库连接。我使用了spring框架的AbstractRoutingDataSource API 类别1:代码示例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
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>