Приветствия stackoverflowers,
У меня есть проект Java в Eclipse, который содержит, помимо RESTful WebServices, для чтения входов некоторую логику программирования, которая использует введенные данные и данные из соединения с базой данных (с использованием драйвера jdbc
) для получения некоторых результатов. Затем проект экспортируется в файл .war
и развертывается на Apache Tomcat Server
. Все идет нормально.
Мой вопрос: могу ли я отделить файл Java, который содержит соединение с БД (чтобы быть вне .war
), чтобы быть легко модифицируемым?
Представьте, что у меня есть 4 разных БД (тестовая БД, devolpment DB, производственная БД и т.д.)... мне нужно создать 4 разных файла .war
с разными параметрами подключения или есть способ получить его извне в проект .war
и изменить параметры подключения, как мне нравится? (но все еще подключен и читаем .war
).
PS: Извините, если я допустил какие-либо орфографические ошибки, или если я нарушил поведение StackOverflow. Не стесняйтесь сказать мне, если я это сделал, и заранее спасибо всем.
Ваша информация о соединении лучше всего обрабатывать как пулы соединений JNDI, настроенные на сервере приложений, на котором вы развертываете.
Eclipse - это IDE, в которой может быть сервер приложений, такой как Tomcat или JBOSS. Вам нужно научиться настраивать пул соединений JNDI для вашего сервера приложений.
У вас может быть 4 разных файла свойств, указывающих на разные БД. И добавьте системное свойство во время запуска JVM, чтобы выбрать требуемую среду.
Используйте переменные среды O/S (envvars) для хранения деталей, относящихся к машине.
Если вы используете Spring, вы можете использовать Spring PropertyPlaceHolder, а затем использовать эти envvars непосредственно в конфигурационных файлах весны.