spring中實現多資料來源 只需要繼承abstractroutingdatasource抽象類,實現determinecurrentlookupkey()方法即可。
1.該方法返回乙個key。根據這個key
protected datasource determinetargetdatasource()
if(datasource == null) else
}
2.繼承 abstractroutingdatasource
package com.mpp.web.datasource;
import org.springframework.jdbc.datasource.lookup.abstractroutingdatasource;
/** */
public class dynamicdatasource extends abstractroutingdatasource
}
3.datasourceholder
package com.mpp.web.datasource;
/** * 儲存當前執行緒中使用的資料來源標識
*/public class datasourceholder
public static void setdatasource(string key)
public static void cleardatesource()
}
4.xml配置
5.測試
package com.mpp.test;
import com.mpp.web.datasource.constant;
import com.mpp.web.datasource.datasourceholder;
import com.mpp.web.entity.user;
import com.mysql.fabric.xmlrpc.base.data;
import org.apache.log4j.logger;
import org.junit.test;
import org.junit.runner.runwith;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.test.context.contextconfiguration;
import org.springframework.test.context.junit4.abstractjunit4springcontexttests;
import org.springframework.test.context.junit4.springjunit4classrunner;
import org.springframework.transaction.annotation.transactional;
/** * 測試類
*/@runwith(springjunit4classrunner.class)
@contextconfiguration(locations=)
//宣告乙個事務管理 每個單元測試都進行事務回滾 無論成功與否
@transactional
public class springjunittest extends abstractjunit4springcontexttests
/*** 資料來源切換測試
*/@test
public void testdbone()
}
spring 多資料來源
之前嘗試的乙個多資料來源切換的功能測試可以實現了,下面進行一下簡單的筆記 testservice 方法通過以下方式進行主動切換 dynamicdatasource 類 package com.utils import org.springframework.jdbc.datasource.looku...
spring多資料來源配置
前段時間由於公司專案需求,需要多資料來源的支援,苦b折騰了兩天程式猿,話不多說,直接擼碼。classpath jdbc.properties select 1 true select 1 true org.hibernate.dialect.mysqldialect false update tru...
spring 多資料來源配置
以下是我的xml配置,在配置的過程中涉及到不同的包分配不同的資料來源,在這裡用逗號分割就好 當然萬用字元能結局的那是最好了.xmlns xsi xmlns aop xmlns tx xmlns task xmlns context xmlns rabbit xsi schemalocation sp...