2 подключение источника данных с использованием файла свойств - PullRequest
0 голосов
/ 11 февраля 2020

Мой файл application.yml выглядит примерно так:

spring:
profiles: environment

jpa:
  database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
  hibernate:
    ddl-auto: none
datasource:
  url: jdbc:mysql://myUrl
  username: master
  driver-class-name: "com.mysql.cj.jdbc.Driver"

Мой класс DatabaseConnection выглядит примерно так:

@Component
public class DatabaseManager {

public static final String CONTEXT_KEY = "context";
public static final String CONTEXT_VALUE = "myContext";
public static final String TABLE_NAME = "my-credential-store";
public static final String CREDENTIAL = "mydb.password";
public static final String WRITE_ENDPOINT_OUTPUT = "mydbwriteendpoint";
public static final String DATASOURCE_URL = "spring.datasource.url";
public static final String DATASOURCE_PASSWORD = "spring.datasource.password";

public static void createConnection() throws Exception {
    JCredStash jCredStash = null;

    try {
        Map<String, String> context = new HashMap<>();

        context.put(CONTEXT_KEY, CONTEXT_VALUE);
        jCredStash = new JCredStash(TABLE_NAME);

        String secret = jCredStash.getSecret(CREDENTIAL, context);
        String writeEndpoint = jCredStash.getSecret(WRITE_ENDPOINT_OUTPUT, context);

        System.setProperty(DATASOURCE_URL,
                "jdbc:mysql://" + writeEndpoint + ":port/mydb");

        System.setProperty(DATASOURCE_PASSWORD, secret);

    } catch (Exception e) {
        System.out.println(e.getMessage());
    } finally {
        if (jCredStash != null)
            jCredStash.close();
    } 
  }
}

Здесь я получаю пароль БД от AWS Cred Sta sh. Все отлично работает для базы данных "mydb". Теперь я создал другую базу данных с именем «mydb1» в том же экземпляре URL с тем же именем пользователя и паролем. Я пробовал несколько вариантов, таких как создание другого источника данных, но ни один из них не работал для меня. Кто-нибудь может подсказать мне, как я могу создать соединение с "mydb1" вместе с "mydb"? Спасибо

...