当前位置: 首页 > 知识库问答 >
问题:

Spring池与MySQL的连接

淳于博
2023-03-14

我有(假设)以下服务器为我的应用程序;我的工作与MySQL。

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

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

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

如何在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>

问候

共有1个答案

魏彦
2023-03-14

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

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

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

  • 数据库复制功能
 类似资料:
  • 我正在尝试将我的应用程序与JMS队列集成(使用ActiveMQ)。我使用Spring集成作为集成组件。我们希望有连池。已将'maxContopt消费者'作为100提供给'DefaultMessageListenerContainer'。 问题是,一旦从队列中读取了所有消息,“消费者数量”仍为100(如ActiveMq控制台上所示)。当我们在数据库中使用连接池(通过JNDI)时,一旦不再需要连接,它

  • 问题内容: 我试图弄清楚如何构造我的应用程序以最有效地使用MySQL。我正在使用node- mysql模块。这里的其他线程建议使用连接池,因此我设置了一个小模块mysql.js 现在,每当我要查询mysql时,我都需要此模块,然后查询数据库 这是好方法吗?除了非常简单的示例(其中所有操作均在主app.js脚本中完成)之外,我真的找不到太多的使用mysql连接的示例,因此我真的不知道约定/最佳实践是

  • Mysql协程连接池 demo中有封装好的mysql连接池,MysqlPool2.php,复制demo中的MysqlPool2.php并放入Application/Utility中即可使用 添加数据库配置 在Config中添加配置信息: 'MYSQL' => [ 'HOST' => '127.0.0.1', // 数据库地址 'PORT' => 3306, // 数据库端口

  • 在我的程序中,我正在访问wep api。最多可以有7个不同的线程访问web api的不同服务器。每个线程负责一个服务器,每个服务器速率限制每个线程。每个线程更新相同的mysql数据库。线程数保持不变。 在我的示例中,是否需要连接池?我不应该只打开7个不同的连接,这些连接将在程序的生命周期中打开吗?

  • 我正在用node编写一个小的Web应用程序。js MySQL,不知道哪一个是连接池的更好选择。到目前为止,我发现了两种选择:从节点mysql进行连接池(https://github.com/felixge/node-mysql#pooling-连接)以及节点mysql通用池(https://github.com/coopernurse/node-pool).两者似乎都有相同的作用,我只是想知道你是

  • 下面是我从Internet上的大多数教程中复制的pom.xml。 然后,下面是我放置在属性文件中的配置: 我会犯什么错?我得到以下错误: 2016-09-25 22:58:18.297信息8452---[main]org.Hibernate.version:hhh000412:Hibernate核心{5.0.11.final}2016-09-25 22:58:18.299信息8452---[ ma