首页 > 解决方案 > 连接多个数据库

问题描述

我想将我的应用程序与 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”

我究竟做错了什么?

标签: javaspring-bootintellij-idea

解决方案


DataSource您可以 return代替return DataSourceProperties,例如:

@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将是必需的。

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


推荐阅读