1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package com.ruoyi.Common;
- import org.apache.commons.lang3.text.StrSubstitutor;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.util.Map;
- /**
- * @author zhengxiaohui
- * @date 2023/8/15 19:07
- * @desc 配置文件处理工具
- */
- public class ConfigFileUtil {
- /**
- * 获取请求数据报文内容
- * @param templateFilePath 报文模板格式文件位置,位于resources文件夹下面(conf/--/--.xx)
- * @param parameter 模板中可以替换的占位参数信息
- * @return
- */
- public static String getReqBodyFromTemplate(String templateFilePath, Map<String, Object> parameter) {
- String templateContent = ConfigFileUtil.readFileContent(templateFilePath);
- return ConfigFileUtil.replace(templateContent, parameter);
- }
- /**
- * 读取xml配置文件
- *
- * @param filePath 文件相对于resources文件夹的相对路径
- * @return
- */
- public static String readFileContent(String filePath) {
- String resourcePath = CommonMethod.getResFileAbsPath(filePath);
- // 读取指定文件路径的文件内容
- String contentStr = "";
- try {
- Path path = Paths.get(resourcePath);
- contentStr = new String(Files.readAllBytes(path));
- } catch (IOException e) {
- e.printStackTrace();
- }
- return contentStr;
- }
- /**
- * 替换 占位符变量固定为 ${}格式
- *
- * @param source 源内容
- * @param parameter 占位符参数
- * <p>
- * 转义符默认为'$'。如果这个字符放在一个变量引用之前,这个引用将被忽略,不会被替换 如$${a}将直接输出${a}
- * @return
- */
- public static String replace(String source, Map<String, Object> parameter) {
- return replace(source, parameter, "${", "}", false);
- }
- /**
- * 替换
- *
- * @param source 源内容
- * @param parameter 占位符参数
- * @param prefix 占位符前缀 例如:${
- * @param suffix 占位符后缀 例如:}
- * @param enableSubstitutionInVariables 是否在变量名称中进行替换 例如:${system-${版本}}
- * <p>
- * 转义符默认为'$'。如果这个字符放在一个变量引用之前,这个引用将被忽略,不会被替换 如$${a}将直接输出${a}
- * @return
- */
- public static String replace(String source, Map<String, Object> parameter, String prefix, String suffix, boolean enableSubstitutionInVariables) {
- //StrSubstitutor不是线程安全的类
- StrSubstitutor strSubstitutor = new StrSubstitutor(parameter, prefix, suffix);
- //是否在变量名称中进行替换
- strSubstitutor.setEnableSubstitutionInVariables(enableSubstitutionInVariables);
- return strSubstitutor.replace(source);
- }
- }
|