Использование переменных среды в файле свойств Mybatis - PullRequest
0 голосов
/ 10 апреля 2020

Я использую mybatis для подключения к базе данных, и я сохранил некоторую информацию о схеме во внешнем файле свойств. Я держал этот файл свойств где-то на моем диске и ссылался на него в моем config.xml, как показано ниже

In Config. xml

<properties url="file:///E:/mybatis/sqlmapconfig.properties" />

В моем sqlmapconfig.properties файле

schema=test_schema

Я хочу сделать этот путь настраиваемым пользователем, то есть пользователи могут установить среду, такую ​​как «MyBatis.Config» со значением «E: / mybatis». так что вы можете ссылаться на него в файле config. xml, как показано ниже

<properties url="file:///${env.MyBatis.Config}/sqlmapconfig.properties"/>

Я пробовал приведенный выше фрагмент, но не выбрал файл свойств. Кто-нибудь знает, как мы можем использовать переменную системы или среды в файлах свойств в контексте Mybatis.

1 Ответ

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

MyBatis не раскрывает такие переменные среды.
Возможно, вам придется встроить Configuration в Java код.
См. Это do c для ознакомления с основами.

Затем вызовите configuration.setVariables(), чтобы установить загруженный Properties.

String envVar = System.getenv("MyBatis.Config");
String url = "file:///${env.MyBatis.Config}/sqlmapconfig.properties"
  .replace("${env.MyBatis.Config}", envVar);
Properties props = new Properties();
try (InputStream propStream = new URL(url).openStream()) {
  props.load(propStream);
}
configuration.setVariables(props);
configuration.addMapper(YourMapper.class);

Обратите внимание, что преобразователи должны быть добавлены после установки переменных.

...