SpringMvc多源数据库orcal配置

1、数据库配置文件jdbc.properties

# UDM数据源,不加前缀
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@ip:1521:ma
jdbc.username=udm
jdbc.password=111111

#BI
dbBi.jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
dbBi.jdbc.url=jdbc:oracle:thin:@ip:1521:bi
dbBi.jdbc.username=dm
dbBi.jdbc.password=111111

jdbc.initialSize=1
jdbc.maxActive=10
jdbc.maxIdle=1
jdbc.minIdle=1
jdbc.logAbandoned=true
jdbc.removeAbandoned=true
jdbc.removeAbandonedTimeout=180
jdbc.maxWait=5000
jdbc.defaultAutoCommit=false
jdbc.defaultReadOnly=false
#projectLocation=D:/workspace/udm/src
projectLocation=E:/work/codingOfEclipseMars/udm/src
project.udm=http://localhost:8080/udm

2、applicationContext.xml

  

	
	
	
	
	
	
	
		
			
				classpath:jdbc.properties
				classpath:application.properties
			
		
	

	
		
		
		
		
		
		
		 
		
		
		
		
		
		
		
	

		
		
		
		
		
		
		
		 
		
		
		
		
		
		
		
	
	
	
		
			
				
				
			
		
		
	

	

	
		
			
			
			
			
		
	
	
	
	            
		                
			        
		
	
	
	
	
		
		
		
			
				org.hibernate.dialect.Oracle10gDialect
				false
				false
				ehcache.xml
				false
				true
			
		
		
			
				com.banking.**.entity
			
		
	
	

	
	
		
	
	

	
	
		
		    
	        
		
	
	
	
	
		
	
	

3、相关代码

SpringMvc多源数据库orcal配置_第1张图片

3.1 DatabaseContextHolder.java

package com.banking.bidailycost.core;

public class DatabaseContextHolder {

	private static final ThreadLocal contextHolder = new ThreadLocal();

	public static void setCustomerType(String customerType) {
		contextHolder.set(customerType);
	}

	public static String getCustomerType() {
		return contextHolder.get();
	}

	public static void clearCustomerType() {
		contextHolder.remove();
	}
}

3.2 DataSourceInterceptor.java

package com.banking.bidailycost.core;

import org.aspectj.lang.JoinPoint;

public class DataSourceInterceptor {
    //注意setdataSourceUdm()名称要和applicationContext.xml文件中相同
	public void setdataSourceUdm(JoinPoint jp) {
		DatabaseContextHolder.setCustomerType("dataSourceUdm");
	}
	
	public void setdataSourceBi(JoinPoint jp) {
		DatabaseContextHolder.setCustomerType("dataSourceBi");
	}
}

3.3 DynamicDataSource.java

package com.banking.bidailycost.core;

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

public class DynamicDataSource extends AbstractRoutingDataSource {

	@Override
	protected Object determineCurrentLookupKey() {
		String teString=DatabaseContextHolder.getCustomerType();
		return teString;
	}

}

4、实现 视图

SpringMvc多源数据库orcal配置_第2张图片

你可能感兴趣的:(JAVA)