1 Service A(){ 2 3 function startFunction(){ 4 B.testOne(); 5 6 C.testTwo(); 7 } 8 9 } 10 11 12 Service B(){ 13 @DS("First") 14 testOne(){ 15 //具體使用數據源First的查詢 16 } 17 18 } 19 20 21 Service C(){ 22 23 @DS("Second") 24 testTwo(){ 25 testThrid(); 26 } 27 28 testThird(){ 29 //具體使用數據源Second的查詢 30 } 31 32 }
最近項目中使用到了多數據源切換,經過測試發現該注解需要標注在程序的入口處,舉例如上面所示。
1.在同一個方法中不能同時使用兩種數據源,需要使用的化要將代碼抽成獨立方法。例如上面不能在testOne方法中調用testThird方法,因為testOne中已經使用了數據源First,不能在方法內部在切換成數據源Second。但是startFunction中就可以調用這兩個方法,因為這兩個方法相互獨立。
2.需要在方法的入口處切換數據源,即我們需要在testTwo方法上制定切換成數據源Second,才能成功的在startFunction中獲取到應有的數據,如果只在testThird方法切換數據源,但是testTwo方法上沒有切換則startFunction中調用的testTwo方法不能夠正確執行,將找不到數據源
