gpt4 book ai didi

java - Spring Boot 在多个数据库(数据源)之间切换

转载 作者:行者123 更新时间:2023-12-01 22:00:27 25 4
gpt4 key购买 nike

我有一个 Spring Boot REST API 应用程序,用于具有 2 个不同设置(=2 个不同 jar)的项目。两者都需要实现,但我不知道如何实现或最好的方法是什么。

两种设置都需要与在线数据库(在服务器上;AWS)建立连接,并与离线或本地数据库(在计算机/电脑本身上运行)建立连接。两种设置之间的不同之处在于离线或本地连接。

<小时/>

设置 1:
当应用程序启动时,它需要连接到在线数据库。当发生错误或与在线数据库的连接丢失时,需要连接离线/本地数据库。

不要求发生错误或连接丢失后重新连接在线数据库。

设置 2:
当应用程序启动时,它需要连接到在线和离线数据库。因此,当用户向 REST API 进行发布时,在线和离线数据库都需要更新(除非发生错误或与在线数据库的连接丢失)。如果用户只是进行get请求,优先从在线数据库获取数据,除非发生错误或者与在线数据库的连接丢失,否则可以使用离线数据库。

不要求在发生错误或连接丢失后重新连接在线数据库,但在这种设置中会很好。再次建立连接后同步数据也不是必需的(但可能是一个很好的功能)。

<小时/>

<罢工>我见过a similar post解决方案是使用 ha-jdbc 但它是一个旧帖子...当我尝试将其添加到我的 pom.xml 文件时,Maven 只是找不到依赖项。

<罢工>

经过更多搜索和尝试,我能够将 ha-jdbc 添加到我的 pom.xml 中。我必须做的是添加一个包含 ha-jdbc 的存储库。

<project>
<repositories>
<repository>
<id>jbossrepository</id>
<name>jbossrepository</name>
<url>https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/</url>
</repository>
</repositories>
<dependency>
<dependency>
<groupId>net.sf.ha-jdbc</groupId>
<artifactId>ha-jdbc</artifactId>
<version>3.0.3</version>
</dependency>
</dependency>
</project>

但是看看我是否可以让它工作以及它是否是我正在寻找的......
ha-jdbc 不值得尝试,一个接一个的错误或问题,它也只是旧的 java...

<小时/>

版本:
- java: 1.8
- org.springframework.boot(spring-boot-starter-parent):2.1.8.RELEASE
- 数据库(在线和离线):PostgreSQL 11.5

最佳答案

看看这个 example code 。在那里您可以找到已经实现的工作解决方案。其背后的逻辑是EnableJpaRepositories,它基于包(basePackages)启用它

关于java - Spring Boot 在多个数据库(数据源)之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58710123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com