Spring-Boot多个db目标依赖项

时间:2016-02-02 15:50:33

标签: java spring jdbc spring-boot

是否有社区/春季'使用Boot批准的方法为同一个项目提供不同的数据源目标?

我是否应该在项目依赖项中包含连接器(H2和Mysql),只需更改application.yml中的jdbc网址?

我们正在将我们的tomcat实例切换到一个Boot项目,旧的习惯是提供jdbc jar。我想知道在靴子胖罐/战争执行官中是否仍然支持或需要它。

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,有两种情况,你可能会感兴趣。

首先,您可以在项目中同时使用两个数据源(例如,同时从H2和MySQL获取数据,或者一个接一个地获取数据)。

第二种情况是您使用两个数据源但不能同时使用,例如:H2用于测试/调试项目构建,MySQL用于生产。另一个子场景就像你想要的主要/次要数据源。

第一种情况的解决方案是添加两个依赖项,禁用数据库的引导自动配置(自动配置不适用于多个数据源),并手动配置单独的EntityManagers等。(更多信息请参见:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-data-access.html#howto-use-two-entity-managers

很抱歉,我无法提供任何代码示例,但我无法从家中访问我的工作回购。

转到第二个场景,您可以使用配置文件。 您必须为该配置文件创建单独的配置文件和application-something.yml文件。在你的内部你配置你的第二个数据源,然后在依赖关系中你可以使你的第二个数据库依赖只添加特定的配置文件 - 但在这里我不是100%肯定,我不记得我们是如何在工作中做到的; d。

而且,我不能粘贴任何示例,但这里有一些帮助: ProfilesProfile-specific configuration files

然后我之前提到过一个子场景。将数据源标记为$a = 830 #or $a = 830 $b = "a" 但是在这里我从未使用它,我只知道它存在:Link

Edit2:在重新思考之后,我认为这是使用Boot和活动配置文件的方法:Spring Boot Maven Plugin

很抱歉有很多垃圾邮件和重新审核。那肯定很混乱。

希望有所帮助,