》,通過在類或者方法上新增@datasource註解就可以指定某個資料來源。這種方式的優點是控制粒度細,也更靈活。
但是當有些時候專案分模組開發,可能某乙個模組只訪問同乙個資料來源,這種場景下如果使用註解的話就要在這個模組下的所有dao介面都增加註解@datasource,就會顯得繁瑣。
如果能直接在配置檔案中一次性配置好,不用在每個類都新增註解豈不是更好?當然也是可以的^_^。
首先,再建立乙個aop切面datasourceaspect2,**如下:
1public
class
datasourceaspect2
1112
/**13
* 設定資料來源datasource2
14*
15*
@param
point
16*/
17public
void
setdatasource2(joinpoint point)
2021 }
然後,配置這個切面的bean和攔截規則,xml配置如下:
1<
bean
id="datasourceaspect2"
class
="com.test.context.datasource.datasourceaspect2"
/>
2<
aop:config
>
3<
aop:aspect
ref="datasourceaspect2"
>45
<
aop:pointcut
id="datasource1pointcut"
expression
="execution(* com.test.ds1.*.*(..))"
/>67
<
aop:pointcut
id=" datasource2pointcut"
expression
="execution(* com.test.ds2.*.*(..))"
/>89
<
aop:before
pointcut-ref
="datasource1pointcut"
method
="setdatasource1"
/>
1011
<
aop:before
pointcut-ref
="datasource1pointcut"
method
="setdatasource2"
/>
12aop:aspect
>
13aop:config
>
這樣配置好之後,每個模組下的dao就只訪問指定的資料來源了。以後如果再增加資料來源datasource3,則在datasourceaspect2類裡增加乙個方法setdatasource3(joinpoint point),
並在上面的配置中增加類似的攔截規則就可以了。
假如使用了xml的方式配置了ds1模組使用資料來源datasource1了,而ds1模組下的某個方法a又需要訪問資料來源datasource2,這時可以單獨在a上使用註解@datasource指定資料來源。
也就是說註解和xml配置兩種方式可以同時使用(但不建議這樣),至於兩者哪個的優先順序更高,可以通過配置aop:aspect裡的order引數進行指定。
基於xml配置Spring
之前用的是springboot,沒接觸過spring的xml配置,最近專案轉到普通spring,順便學習了一下基於xml的配置。首先是命名空間的定義 處為預設命名空間,它沒有空間名,用於springbean的定義 處xsi標準命名空間,用於為每個文件中的命名空間指定相應的schema樣式檔案,是w3...
Spring 基於XML配置
基於xml的配置 對於基於xml的配置,spring 1.0的配置檔案採用dtd格式,spring2.0以後採用schema格式,後者讓不同型別的配罝擁有了自己的命名空間,使得配置檔案更具擴充套件性。此外,spring基於schema 配置方案為許多領域的問題提供了簡化的配置方法,配置工作因此得到了...
基於xml配置spring的AOP
xml中主要配置 配置賬戶的持久層 accountdao class com.itheima.dao.impl.iaccountdaoimpl datasource ref datesource property bean 配置賬戶的業務層 accountservice class com.ithe...