基於xml的Spring多資料來源配置和使用

2022-01-29 04:57:38 字數 1753 閱讀 1306

》,通過在類或者方法上新增@datasource註解就可以指定某個資料來源。這種方式的優點是控制粒度細,也更靈活。

但是當有些時候專案分模組開發,可能某乙個模組只訪問同乙個資料來源,這種場景下如果使用註解的話就要在這個模組下的所有dao介面都增加註解@datasource,就會顯得繁瑣。

如果能直接在配置檔案中一次性配置好,不用在每個類都新增註解豈不是更好?當然也是可以的^_^。

首先,再建立乙個aop切面datasourceaspect2,**如下:

1

public

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...