Как переместить жестко запрограммированные свойства соединения JDB C из класса Java в файл свойств? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть веб-приложение, созданное с помощью Spring. Он подключается к базе данных с использованием JDB C, а свойства JDB C (URL, имя пользователя, пароль и т. Д.) В настоящее время жестко заданы.

Веб-приложение развернуто в виде файла WAR и работает на Tomcat 8.5

Я хочу переместить эти свойства в файл myapp.properties, который находится за пределами развернутого файла WAR, где пользователь может настроить эти свойства, чтобы они указывали на свою собственную базу данных.

При запуске приложения, если веб-приложение не может найти файл, я все же хочу, чтобы приложение запустилось и отображало дружеское сообщение «Извините, я не могу подключиться к базе данных, поскольку файл свойств отсутствует» ( вместо того, чтобы просто не запускать веб-приложение).

Я думал о том, чтобы поместить myapp.properties в каталог conf Tomcat (например: /bin/apache-tomcat-8.5.53/conf/myapp. свойства) и всегда загружать его оттуда, но я не знаю, как программно определить это местоположение папки conf tomcat.

Есть идеи, как мне подходить к этому?

1 Ответ

0 голосов
/ 16 апреля 2020

Я нашел решение, которое работает для меня. Я смог прочитать переменную окружения catalina.home, чтобы программно определить местоположение tomcat.

Затем я загружаю свой файл свойств из каталога tomcat / conf.

Полный код ниже, кажется, работает хорошо.

String catalinaHome = System.getProperties().getProperty("catalina.home");
String myappPropertiesFile = catalinaHome + File.separator + "conf" + File.separator + "myapp.properties";

Properties props = new Properties();
props.load(new FileInputStream(myappPropertiesFile));

String jdbcDriver = props.getProperty("jdbcDriver");
String jdbcUrl = props.getProperty("jdbcUrl");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...