数据源在配置文件中的配置html
请点击---》 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 java
请点击---》 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 spring
DynamicDataSource.classsql
- package com.core;
-
- import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
-
- public class DynamicDataSource extends AbstractRoutingDataSource{
-
- @Override
- protected Object determineCurrentLookupKey() {
- return DatabaseContextHolder.getCustomerType();
- }
-
- }
DatabaseContextHolder.class设置数据源的类数据库
- package com.core;
-
- public class DatabaseContextHolder {
-
- private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
- <span style="white-space:pre"> </span>
- public static void setCustomerType(String customerType) {
- contextHolder.set(customerType);
- }
- <span style="white-space:pre"> </span>
- public static String getCustomerType() {
- return contextHolder.get();
- }
- <span style="white-space:pre"> </span>
- public static void clearCustomerType() {
- contextHolder.remove();
- }
- }
DataSourceInterceptor.classexpress
- package com.core;
-
- import org.aspectj.lang.JoinPoint;
- import org.springframework.stereotype.Component;
-
- @Component
- public class DataSourceInterceptor {
- <span style="white-space:pre;"> </span>
- public static final String SOURCE_PLAN = "dataSourceOne;
-
- public static final String SOURCE_FUND = dataSourceTwo;
}spring-mvc
请点击---》 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 session
springMVC数据源架构
- jdbc_driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
- dataSourceOne=jdbc:sqlserver://115.29.***.**;DatabaseName=DB_GuiHua
jdbc_username=**jdbc_password=**并发
- dataSourceTwo=jdbc:sqlserver:
Spring MVC会默认有一个数据源,当须要更换数据源时,要在调用事务以前配置
- DataSourceContextHolder.setDbType(DataSourceType.SOURCE_FUND);
- public class DataSourceContextHolder {
- private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
-
- public static void setDbType(String dbType) {
- contextHolder.set(dbType);
- }
-
- public static String getDbType() {
- return ((String) contextHolder.get());
- }
-
- public static void clearDbType() {
- contextHolder.remove();
- }
- }
请点击---》 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程