#java #sql #hibernate #ssl
#java #sql #спящий режим #ssl
Вопрос:
У меня есть приложение, которое подключается к базе данных. БД может быть SQL Server, PG и т.д. Мне нужно настроить приложение на использование SSL сейчас.
Я использую режим гибернации и соответствующим образом настраиваю источники данных. На данный момент я использую org.apache.commons.dbcp2.BasicDataSource
.
Я понимаю, что для подключения к SQL Server с использованием SSL мне нужно использовать SQLServerDataSource
. Но тогда это не сработает, если кто-то решит использовать базу данных PG.
Есть ли какой-нибудь способ динамически настраивать отдельные источники данных? Или есть общий источник данных, который я могу использовать независимо от драйвера jdbc (mssql или pg), предоставляемого во время выполнения?
Передача параметров JVM, таких как -Djavax.net.ssl.trustStore
и -Djavax.net.ssl.trustStorePassword
изменение строки подключения jdbc, не является вариантом.
Я использую Spring (в основном XML-конфигурации) для начальной загрузки приложения.
Комментарии:
1. Было бы полезно узнать, как загружается ваше приложение. Используете ли вы Spring, Micronaut, Dropwizard или какой-либо другой фреймворк? Каждый из тех, о которых я упомянул, предоставляет способ изменить используемый класс в зависимости от конфигурации, но это будет выглядеть немного по-другому.
2. Обновлен вопрос
Ответ №1:
Весной вы можете заменить используемый класс источника данных с помощью profiles .
Ключевая идея заключается в том, что вы можете предоставить несколько определений одного и того же компонента. Эти определения будут заключены в отдельный <beans>
элемент с другим атрибутом профиля.
<beans profile="embedded-db">
<jdbc:embedded-database id="dataSource">
<jdbc:script location="classpath:com/bank/config/sql/schema.sql"/>
<jdbc:script location="classpath:com/bank/config/sql/test-data.sql"/>
</jdbc:embedded-database>
</beans>
<beans profile="sql-server">
<!-- Configuration of you SQL Server data source -->
</beans>
<beans profile="postgresql">
<!-- Configuration of you PostgreSQL data source -->
</beans>
При запуске приложения свойство конфигурации spring.profiles.active
должно быть установлено для выбора одного или нескольких профилей.
К сожалению, современная документация Spring не оказывает большой помощи в настройке конфигураций XML. Я думаю, что теперь они считаются устаревшими.