Использование переменных среды в файле свойств Mybatis
Я использую mybatis для подключения к базе данных, и я сохранил некоторую информацию о схеме во внешних файлах свойств. Я сохранил этот файл свойств где-то на моем диске и ссылаюсь на него в своемconfig.xml
как показано ниже
В 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 ответ
MyBatis не расширяет такие переменные среды.
Возможно, вам придется построитьConfiguration
в коде Java.
См. Этот документ для ознакомления с основами.
Тогда позвони 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);
Обратите внимание, что сопоставители должны быть добавлены после установки переменных.