【问题标题】:Connecting multiple databases连接多个数据库
【发布时间】:2021-03-12 12:35:12
【问题描述】:

我想将我的应用程序与 2 个不同的数据库连接起来。这是我尝试过的:


public class DataSourceWilaConfig {
    @Bean
    @Primary
    @ConfigurationProperties(prefix="spring.wila")
    public DataSource wila() {
        return DataSourceBuilder.create().build();
    }
}

public class DataSourceWaldConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.wald")
    public DataSource wald() {
        return DataSourceBuilder.create().build();
    }
}

所以我在 application.properties 中添加了:

spring.datasource.url=
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.username=
spring.datasource.password=

spring.wald.datasource.url=
spring.wald.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.wald.datasource.username=
spring.wald.datasource.password=

但 Intellij 告诉我:无法解析配置属性“spring.wald.datasource.url”

我做错了什么?

【问题讨论】:

  • 我确实注意到您的属性看起来有问题。我假设您希望第一个阅读 spring.wila.datasource.url 而不是 spring.datasource.url
  • @AlexanderKatsenelenbogen spring.wila.datasource.url 被设置为主要,所以spring.datasource.url 应该是好的。我得到的警告只与spring.wald.datasource.url有关。
  • 将 spring.wald.xxx 更改为 wald.xxx 可能会有所帮助(在您的 application.properties 和前缀中,因为上下文 spring.xx 通常不包括 spring.wald。跨度>
  • @Proseller 在这种情况下,你能安全地从那个特定的 bean 中删除 '@ConfigurationProperties' 吗? (我知道警告是针对 wald 的。另一个对我来说看起来有点可疑)
  • 正如其他人已经告诉您的那样,您应该将 spring.datasource.* 更改为 spring.wila.datasource.*。 IntelliJ 的警告只是告诉您它不知道您自己的属性。请阅读此baeldung.com/…

标签: java spring-boot intellij-idea


【解决方案1】:

您可以返回DataSourceProperties,而不是返回DataSource,例如:

@Configuration
@EnableConfigurationProperties
public class DataSourceWaldConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.wald")
    public DataSourceProperties dataSourceProperties() {
        return new DataSourceProperties();
    }
}

@Configuration
@EnableConfigurationProperties
public class DataSourceWilaConfig {
    @Bean
    @Primary
    @ConfigurationProperties(prefix="spring.datasource.wila")
    public DataSourceProperties wila() {
        return new DataSourceProperties();
    }
}

另外,依赖spring-boot-configuration-processor 将是必需的。

重要提示:完成后,您应该重新构建您的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-19
    • 2019-07-10
    • 2012-01-06
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    相关资源
    最近更新 更多