天天看點

好用的占位符替換工具類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>