Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring池与MySQL的连接_Java_Mysql_Spring_Datasource_Connection Pooling - Fatal编程技术网

Java Spring池与MySQL的连接

Java Spring池与MySQL的连接,java,mysql,spring,datasource,connection-pooling,Java,Mysql,Spring,Datasource,Connection Pooling,我(假设)有以下服务器用于我的应用程序;我使用MySQL 1) 应用程序使用的数据库(位于日本的服务器) 2) 数据库备份(服务器位于秘鲁) 3) 应急数据库(服务器位于美国) 关于Spring的功能,我有几个问题: A) 如何在所有数据源中同时持久化 B) 如何在Spring中创建连接池,以便在第一个数据源没有响应时,系统自动与第二个数据源一起工作 这是我的实际applicationContext数据源.xml <beans xmlns="http://www.springframewo

我(假设)有以下服务器用于我的应用程序;我使用MySQL

1) 应用程序使用的数据库(位于日本的服务器)
2) 数据库备份(服务器位于秘鲁)
3) 应急数据库(服务器位于美国)

关于Spring的功能,我有几个问题:

A) 如何在所有数据源中同时持久化

B) 如何在Spring中创建连接池,以便在第一个数据源没有响应时,系统自动与第二个数据源一起工作

这是我的实际
applicationContext数据源.xml

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>META-INF/database.properties</value>
    </property>
</bean>

<bean id="dataSource" 
      class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="hibernate.hbm2ddl.auto" value="${hibernate.hbm2ddl.auto}"/>
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource">
        <ref local="dataSource"/>
    </property>
</bean>

META-INF/database.properties


关于

如果我有同样的问题,我会尝试在应用程序边界之外解决它,以免应用程序与数据库拓扑耦合

我应该请求将一个对象持久化到Spring/Hibernate认为是数据库的逻辑实体,它不是应用程序的一部分,但它知道数据库拓扑和可用性,然后将数据的分布委托给它

通常,您可以通过以下方式解决此问题:


您会遇到严重的延迟不?一种选择是定义两个数据源,并通过编程检查第一个数据源是否有响应,如果没有,则使用第二个。这不是问题所在,这是一个学术项目,因此服务器就在附近。hibernate和my@Autowired数据源不需要知道应用程序现在正在与其他数据库一起工作。这就是连接池的本质?