在一些场景下,比如做一些日志,需要通过字符串表达式占位符替换成真正的对象属性
具体使用可参考:
https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#expressions-ref-literal
测试例子如下:
import lombok.Data;
import org.springframework.expression.spel.standard.SpelExpressionParser;
/**
* @author matt
*/
public class Testmain {
public static void main(String[] args) {
// 通过字符串表达式获取对象属性值
// 在一些场景下,比如做一些日志,需要通过字符串表达式占位符替换成真正的对象属性
SpelExpressionParser parser = new SpelExpressionParser();
Testmain testmain = new Testmain();
testmain.item = new Item();
testmain.item.name = "12ASDASDASD23";
testmain.item.age = 18;
Testmain[] testmains = new Testmain[1];
testmains[0] = testmain;
String arrayItemName = (String) parser.parseExpression("[0].item.name").getValue(testmains);
System.out.println(arrayItemName);
String itemName = (String) parser.parseExpression("item.name").getValue(testmain);
System.out.println(itemName);
Object value = parser.parseExpression("item.age").getValue(testmain);
System.out.println(value.toString());
}
public Item item;
@Data
public static class Item {
private String name;
private Integer age;
}
}