Я изучаю, как использовать @DataSourceDefinition
. В документации приводится конкретный пример:
@DataSourceDefinition(name="java:global/MyApp/MyDataSource",
className="com.foobar.MyDataSource",
portNumber=6689,
serverName="myserver.com",
user="lance",
password="secret"
)
Вопрос
Как я могу подставить эти значения для переменных среды? как DB_HOST
, DB_URL
Причина в том, что когда я развертываю свое приложение на таких провайдерах, как OPENSHIFT
, все, что я получаю, значения, используемые для подключения к базе данных.
Я бы не хотел их жестко кодировать в своей кодовой базе. Это добавляет связь с конкретной базой данных и не может быть переключено во время выполнения
Есть идеи?
Если вы хотите развернуть приложение Java EE в OPENSHIFT, а также в своем LOCAL JBoss, тогда он рекомендовал использовать файл конфигурации JBoss для настройки свойств источника данных и использовать имя datasouce JNDI в вашем файле persistence.xml.
Если вы действительно не хотите использовать определенные серверы приложений (например, JBoss). Затем вы можете написать оболочку источника данных для аннотированного класса @DataSourceDefinition и изменить значение из источника данных с помощью внешнего файла свойств.
См.: http://jdevelopment.nl/switching-data-sources-datasourcedefinition