2015-09-17 71 views
0

是否有可能創建一個具有多個數據庫的spring mvc應用程序? 我正在爲學校創建一個學校管理網絡應用程序。 爲了簡化數據庫管理,我想爲每個學校映射一個數據庫,但是web應用保持不變,只有數據庫的配置發生變化。 我正在使用jobss作爲我的服務器和我的web應用程序中的JNDI數據源配置的服務器。所有應用程序都在同一個活動服務器上託管。 是否有可能這樣做,那麼最好的方法是什麼?每個應用程序的多個數據庫

春天數據源配置:

<!-- JNDI setup --> 
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName"> 
     <value>java:jboss/datasources/ResponseDS</value> 
    </property> 
</bean> 

JBoss的standalone.xml配置:

<datasource jndi-name="java:jboss/datasources/ResponseDS" pool-name="ResponseDSPool"> 
    <connection-url>jdbc:mysql://localhost:3306/response</connection-url> 
    <driver>com.mysql</driver> 
    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> 
    <pool> 
     <min-pool-size>10</min-pool-size> 
     <max-pool-size>100</max-pool-size> 
     <prefill>true</prefill> 
    </pool> 
    <security> 
     <user-name>root</user-name> 
     <password>password</password> 
    </security> 
    <statement> 
     <prepared-statement-cache-size>32</prepared-statement-cache-size> 
     <share-prepared-statements>true</share-prepared-statements> 
    </statement> 
</datasource>  

回答

0

我沒有看到有multiple datasources in spring和JBoss配置的任何問題。但是在你的代碼中維護會變得很麻煩,所以我寧願將DAO層分離成單獨的包或模塊,這些包或模塊可以重複使用,可單獨測試,並且兩個模塊都不應該知道每個其他數據庫相關的代碼。這樣就可以明確哪個模塊處理哪個數據庫及其事務,以便在出現任何問題時可以輕鬆進行調試。

0

如果我正確地理解了這個問題,應用程序代碼,其他所有模塊將保持不變,但數據將來自不同的數據庫。

您可以配置多個數據源,但您需要在應用程序中有一個邏輯來在運行時選擇數據源取決於某些標準,例如說學校登錄用戶所屬的標準。

但是,每次添加新學校時,都需要創建新的數據源並更改應用程序中的邏輯,這不是很好的做法,代碼很快就會失控。

相關問題