天天看点

好用的占位符替换工具类spring—PropertyPlaceholderHelper说明

PropertyPlaceholderHelper

  • 说明
    • 示例

说明

PropertyPlaceholderHelper 可以替换${key}、{key} 各式各样的占位符,是一个比较好用的字符串替换占位符的工具类,例如:替换短信模板信息,邮件模板信息,xml报文模板信息等。

示例

这里以xml 报文为例

import org.springframework.util.PropertyPlaceholderHelper;
import org.springframework.util.StringUtils;

import java.util.HashMap;
import java.util.Map;


public class Utils {


    /**
     * 替换 xml字符串中 ${aaa}
     * @param xmlContent  字符串模板
     * @param map map
     * @return
     */
    public static String replaceXmlElementValue(String xmlContent, Map<String, String> map){
        if(!StringUtils.hasText(xmlContent)){
            return xmlContent;
        }
        //定义${开头 ,}结尾的占位符
        PropertyPlaceholderHelper propertyPlaceholderHelper = new PropertyPlaceholderHelper("${", "}");
       //调用替换
        return propertyPlaceholderHelper.replacePlaceholders(xmlContent, map::get);
    }

    public static void main(String[] args)  {
        Map<String ,String>  map = new HashMap<>();
        map.put("id","123123123");
        map.put("name","如花");
        map.put("age","18");
        String content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                "<tx>\n" +
                "  <txbody>\n" +
                "    <id>${id}</id>\n" +
                "    <name>${name}</name>\n" +
                "    <age>${age}</age>\n" +
                "  </txbody>\n" +
                "</tx>";
        String nxmlContent = replaceXmlElementValue(content, map);
        System.out.println(nxmlContent);
    }
}
           

输出内容

<?xml version="1.0" encoding="UTF-8"?>
<tx>
  <txbody>
    <id>123123123</id>
    <name>如花</name>
    <age>18</age>
  </txbody>
</tx>