首页 > 解决方案 > 可以同时使用 JDBC Template 和 JDBC MySQL 吗?

问题描述

标签: mysqlspring-booth2

解决方案


您不能在 中多次定义相同的键application.properties,一个会覆盖另一个。这意味着如果您需要使用多个数据源(对于 MySQL 和 H2),您不能依赖spring.datasource.xxxapplication.properties. 相反,请自行明确定义这两个 DataSource。有关示例,请参阅官方文档。

此外,JdbcTemplate仅在以下情况下才会配置:

  • 只有一个DataSource定义
  • 如果DataSource定义了多个,但只有一个DataSource标记为@Primary,它将仅针对此@PrimaryDataSource 进行配置。

这意味着在您定义多个 DataSource 之后,您必须将 H2 标记为@Primary这样,JdbcTemplate以便为它自动配置,以确保您现有的JDBCTempalte相关代码仍然与 H2 交互,但不与 MySQL 交互。

顺便说一句,对一个简单的 CRUD 应用程序使用多个数据库没有任何好处。如果您想要一个涵盖来自多个数据库的数据的事务,您将遇到问题。我建议你只为这样一个简单的应用程序选择一个。

(有关更多详细信息,请参阅我的相关答案)


推荐阅读