如何在一个配置文件中具有两个数据库连接

时间:2019-06-25 21:25:46

标签: spring spring-boot

我有一个看起来像这样的课:

package com.mycom.mycust.mysql.dbconnection;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties("mysql")
public class ConnectionProperties {

    private String db1Url;
    private String db2Url;
    private String username;
    private String password;

    public String getDb1Url() {
        return db1Url;
    }

    public void setDb1Url(String url) {
        db1Url = url;
    }

    public String getDb2Url() {
        return db2Url;
    }

    public void setDb2Url(String url) {
        db2Url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

它是从位于mycust / config / application.properties的文件中获取其配置的:

mysql.db1Url=jdbc:mysql://index.prod.cr:1234/db1
mysql.db2Url=jdbc:mysql://index.prod.cr:1234/db2
mysql.username=mycom
mysql.password=mypass

如您所见,该文件包含两个不同的URL :。此外,还有一个文件mycust / mysql-parent / object-mapper / src / main / resources / application.properties,该文件似乎具有为先前显示的配置文件的各个部分命名的功能:

# Connection settings for prod MySQL database
mysql.db1Url=jdbc:mysql://host:port/database
mysql.db2Url=jdbc:mysql://host:port/database
mysql.username=username
mysql.password=password

运行应用程序的jar时,我发现上面文件中的字符串"port"被用作端口号,这显然是错误的。如果我将mycust / config / application.properties的所有凭据放入mycust / mysql-parent / object-mapper / src / main / resources / application.properties中,则会找到正确的凭据,但是我不认为这是怎么回事该程序旨在运行。以前,当我仅连接到一个数据库时,mycust / mysql-parent / object-mapper / src / main / resources / application.properties仅包含mycust / config / application.properties具有实际凭据的所有凭据的占位符名称。既然我有两个要连接的数据库,为什么此设置不起作用?

0 个答案:

没有答案