在多个数据库(数据源)之间进行Spring Boot切换

我有一个带有2个不同设置(= 2个不同的jar)的项目的spring boot REST API应用程序。两者都需要实现,但是我不知道该怎么做或最好的方法。

两个设置都需要与在线数据库(在服务器上; AWS)建立连接,并与离线数据库或本地数据库(在计算机/个人计算机上运行)建立连接。两种设置之间的差异是脱机连接或本地连接。


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

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

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

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


我已经看到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

lclei_2 回答:在多个数据库(数据源)之间进行Spring Boot切换

看看example code。在那里您可以找到已经实施的有效解决方案。 其背后的逻辑是EnableJpaRepositories,它基于软件包(basePackages)启用它

本文链接:https://www.f2er.com/3160137.html

大家都在问