有没有可能创建一个有多个数据库的spring mvc应用?我正在为学校创建一个学校管理web应用程序。为了简化数据库管理,我想为每个学校映射一个数据库,但web应用程序保持不变,唯一的变化是数据库的配置。我使用jobss作为我的服务器的服务器,并在我的web应用程序中配置JNDI数据源。所有的应用程序都托管在同一个实时服务器上。有可能做到这一点吗?最好的方法是什么?
spring数据源配置:
<!-- 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> 发布于 2015-09-17 22:13:26
我不认为配置multiple datasources in spring和jboss有任何问题。但是在你的代码中维护它可能会变得很麻烦,所以我宁愿非常清楚地将DAO层分离到单独的包或模块中,这些包或模块可以单独重用和测试,并且两个模块都不应该知道彼此与数据库相关的代码。这样,就可以清楚地知道哪个模块正在处理哪个数据库及其事务,以便在出现任何问题时可以轻松地进行调试。
发布于 2015-09-18 12:11:41
如果我正确理解了这个问题,应用程序代码,模块,其他一切都将保持不变,但数据将来自不同的数据库。
您可以配置多个数据源,但是您需要在应用程序中有一个逻辑,以便在运行时选择数据源,这取决于一些标准,例如,登录用户所属的学校。
然而,每次添加新的学校时,您都需要创建新的数据源并更改应用程序中的逻辑,这并不是好的做法,代码很快就会失控。
https://stackoverflow.com/questions/32628817
复制相似问题