2016-02-02 2 views
0

Есть ли одобренный «Community/Spring» метод с Boot, чтобы иметь другую целевую базу данных для одного и того же проекта?Spring-Boot multiple db target dependencies

Должен ли я включать оба соединителя (H2 и Mysql) в зависимости от проекта и просто изменить URL-адрес jdbc в моем application.yml?

Мы переводим экземпляр tomcat в проект загрузки, старые привычки иметь jdbc jar, как предусмотрено. Мне было интересно, если это все еще поддерживается или желательно в загрузочном салфетке/war exec.

+0

Зачем вам нужно включать оба? Как вы собираетесь, как только вы скомпилировали артефакт загрузки, переключаетесь между ними? –

+0

Да, я намерен переключаться между ними. Сейчас пакет имеет как h2, так и mysql-соединители. Мне было интересно, было ли это плохо ... –

+0

Но _how_? Это был мой вопрос. Если вы хотите включить один и тот же скомпилированный артефакт, я бы рекомендовал использовать [Spring profiles] (https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and- configuration.html # howto-set-active-spring-profiles) для управления настройками соединения. В противном случае я хотел бы использовать [профили Maven] (https://maven.apache.org/guides/introduction/introduction-to-profiles.html), чтобы выбрать соответствующую настройку во время компиляции. –

ответ

1

Если я правильно понял Ваш вопрос, есть два сценария, которые Вы могли бы быть заинтересуют.

Во-первых, где Вы можете использовать как источники данных сразу в проекте (напр. Получать данные как H2 и MySQL в то же время или один за другим).

Второй сценарий - это когда вы используете два источника данных, но не сразу, например: H2 для сборки тестов/отладки, MySQL для производства. Другой подзадачный сценарий похож на то, что вы хотите что-то вроде первичных/вторичных источников данных.

Решения для первого сценария является добавление двух зависимостей, отключить загрузки автонастройки (автоконфигурация не будет работать для нескольких источников данных) для баз данных и вручную настроить Тхо отдельных EntityManagers и т.д. (подробнее здесь: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-data-access.html#howto-use-two-entity-managers)

Извини, что Я не могу предоставить какой-либо образец кода, но я не могу получить доступ к моему репо-процессу из дома.

Переходя ко второму сценарию, вы можете использовать профили. Вам необходимо создать отдельный профиль и файл application-something.yml для этого профиля. Внутри вы настраиваете свой второй источник данных, а затем в зависимостях вы можете добавить вторую зависимую базу данных для добавления только с определенным профилем, но здесь я не уверен на 100%, я не помню, как мы это делали; d.

И опять же, я не могу вставить любой пример, но вот некоторая помощь: Profiles, Profile-specific configuration files

то есть суб-сценарий, который я упоминал ранее. Маркировка источника данных, как @Primary Но здесь я никогда не использовал его, я просто знаю, что существует: Link

Edit2: После некоторого переосмысления, я думаю, что это путь с загрузкой и активных профилей: Spring Boot Maven Plugin

Sorry для большого количества спама и пересмотра. Это было довольно странно.

Надеюсь, что это поможет,

+0

Должно ли это решить вашу проблему? http://stackoverflow.com/questions/31200232/spring-boot-how-to-configure-multiple-datasources/32414138#32414138 – yugo

+0

Я более подробно рассмотрю профили. Благодарю. –