Spring-Boot Load 2 / несколько источников данных (с файлом yml) - PullRequest
0 голосов
/ 12 мая 2019

Вопрос: Есть ли более чистый способ загрузки более 1 источника данных из файла свойств с помощью SpringBoot?

Сложность: 9/10.

Цель: приложение Spring, которое передает / преобразует данные из одной базы данных (устаревшая база данных Db2) в другую (современная база данных MariaDB).

Spring Data JPA

Все сущности (интерфейсы) расширяют JpaRepository

Я удивлен, что Spring не делает это легче. В итоге я разделил решение на 2 микросервиса, каждый из которых отвечал за каждый источник данных. Работает отлично, но требуется, чтобы это было единое приложение.

Постоянство Пакеты:

Внутри унаследованного пакета:

  • объект
    • LegacyPerson
    • LegacyAccount
  • репо
    • LegacyPersonJpaRepo
    • LegacyAccountJpaRepo

Внутри современного пакета:

  • объект
    • ModernPerson
    • ModernAccount
  • репо
    • ModernPersonJpaRepo

Я попробовал шаги (без удачи), указанные в:

Настройка приложения SpringBoot с двумя источниками данных

Другой пример

И этот тоже

Примечание:

  • spring.jpa.hibernate.ddl-auto свойство отличается для обоих источников данных.

  • Оба источника данных используют разные диалекты, указанные в свойстве spring.jpa.database-platform.

Файл Yml, указанный ниже:

---
########## Legacy Datasource ################
spring:
  datasource:
    name: legacyDS
    username: db2inst1
    password: password
    driver-class-name: com.ibm.db2.jcc.DB2Driver
    url: jdbc:db2://localhost:50000/legacyDB
    sql-script-encoding: UTF-8

  ###################  Hibernate Settings ###################
  jpa.database-platform: org.hibernate.dialect.DB2Dialect
  jpa.database: default
  jpa.show-sql: true
  jpa.hibernate.ddl-auto: none
  jpa.properties.hibernate.show_sql: true
  jpa.properties.hibernate.use_sql_comments: true
  jpa.properties.hibernate.format_sql: true

---
############# Modern Datasource ################
spring:
  datasource:
    name: modernDS
    username: root
    password:
    driver-class-name: org.mariadb.jdbc.Driver
    url: jdbc:mariadb://localhost:3306/modernDB
    sql-script-encoding: UTF-8

  ###################  Hibernate Settings ###################
  jpa.database-platform: org.hibernate.dialect.MariaDB53Dialect
  jpa.database: default
  jpa.show-sql: true
  jpa.hibernate.ddl-auto: create
  jpa.properties.hibernate.show_sql: true
  jpa.properties.hibernate.use_sql_comments: true
  jpa.properties.hibernate.format_sql: true

Это весна! Можно было бы ожидать, что этот вызов будет довольно легким, но он излишне сложный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...