SPEL表达式应用
SPEL表达式解析
val parser = new SpelExpressionParser();
val context = new StandardEvaluationContext();
String spelExpre ="表达式";
String value = parser.parseExpression(spelExpre).getValue(context, String.class);
1.获取当前时间的时间搓毫秒/秒级(表达式)
T(System).currentTimeMillis()/1000l
-- 输出: 1679638520000/1679638520
2.获取当前时间且具备格式的字符串(表达式)
T(java.time.LocalDateTime).now().format(T(java.time.format.DateTimeFormatter).ofPattern("yyyy-MM-dd HH:mm:ss"))
-- 输出: 2023-03-24 13:59:45
3.获取随机字符串(表达式)
T(cn.hutool.core.util.RandomUtil).randomString(32)
T(org.apache.commons.lang.RandomStringUtils).randomAlphabetic(32)
T(java.util.UUID).randomUUID().toString().replace("-","")
-- 输出:
-- bjttslb17i9boc08bn02ofi9u1p4zu4i
-- idcSWTvOhxJRDiXGLEIMIYNZRVMQHxCu
-- c27dd0a81b7142bbb7d5347bbfd5bb7b
4.SPEL表达式个性应用
Map<String, Object> map= new HashMap<>();
map.put("time","2023-03-24 13:59:45");
map.put("randomUUID","bjttslb17i9boc08bn02ofi9u1p4zu4i");
// 表达式
String spelExpre ="#map[time]+'---------'+#map[randomUUID]";
val parser = new SpelExpressionParser();
val context = new StandardEvaluationContext();
// 填充context数据
context.setVariable("map",map);
String value = parser.parseExpression(spelExpre).getValue(context, String.class);
-- 输出:2023-03-24 13:59:45---------bjttslb17i9boc08bn02ofi9u1p4zu4i
5.SPEL表达式解密Base64应用
String param = "MTIzMzIxQUFB"; //--123321AAA base64加密
val parser = new SpelExpressionParser();
val context = new StandardEvaluationContext();
String spelExpre ="new String(T(java.util.Base64).getDecoder().decode(\""+param+"\"))";
String value = parser.parseExpression(spelExpre).getValue(context, String.class);
-- 输出: 123321AAA
文章展示了SPEL表达式在Java中的应用,包括获取当前时间戳、格式化日期、生成随机字符串以及从Map中提取数据和解密Base64编码。示例详细解释了如何使用SPEL进行这些操作。
690

被折叠的 条评论
为什么被折叠?



