布尔表达式
概念说明
布尔表达式用于条件判断,最终返回 true 或 false,常用于 IF 条件控制、流程分支等场景。
基于 Java Spring Expression Language(SpEL),输入变量为 msg(当前消息对象),通过 msg.字段名 访问属性。
快速上手
js
msg.title == '系统告警'
msg.level >= 3 && msg.status != 'closed'
msg.title.contains('紧急')语法参考
msg 对象访问方式
js
msg.title // 字符串字段
msg.level // 数字字段
msg.flag // 布尔字段
msg.sender.name // 嵌套属性
msg.sender?.name // 安全嵌套访问(sender 可能为 null 时使用)
msg.tags[0] // 数组下标访问运算符
| 运算符 | 说明 | 示例 |
|---|---|---|
== | 等于 | msg.title == '123' |
!= | 不等于 | msg.status != 'closed' |
> / < | 大于 / 小于 | msg.level > 2 |
>= / <= | 大于等于 / 小于等于 | msg.score >= 60 |
&& 或 and | 逻辑与 | msg.level > 1 && msg.flag == true |
|| 或 or | 逻辑或 | msg.type == 'A' || msg.type == 'B' |
! 或 not | 逻辑非 | !msg.isRead |
matches | 正则匹配 | msg.title matches '.*紧急.*' |
字符串内置方法
| 方法 | 说明 | 示例 |
|---|---|---|
.contains(str) | 包含子串 | msg.title.contains('告警') |
.startsWith(str) | 以...开头 | msg.code.startsWith('ERR') |
.endsWith(str) | 以...结尾 | msg.code.endsWith('_SYS') |
.isEmpty() | 是否为空字符串 | msg.content.isEmpty() |
.length() | 字符串长度 | msg.title.length() > 10 |
.size() | 集合元素个数 | msg.tags.size() > 0 |
示例
js
// 字符串匹配
msg.title == '123'
// 数值范围
msg.level >= 3
msg.level >= 1 && msg.level <= 5
// 多条件 AND
msg.status == 'active' && msg.level > 1
// 多条件 OR
msg.type == 'warning' || msg.type == 'error'
// 取反
!msg.isRead
// 字符串包含
msg.title.contains('告警')
// 正则匹配
msg.title matches '.*紧急.*'
// 嵌套属性(使用安全导航)
msg.sender?.name == '系统' && msg.level >= 2
// 复合条件
(msg.level >= 1 && msg.level <= 5) && msg.status != 'closed'注意事项
配置人员注意
- 字段可能为
null时,使用安全导航符?.(如msg.sender?.name),否则表达式会报错并中断执行 - 字符串比较使用单引号,如
msg.title == '告警'
开发者注意
SpEL 支持 and / or / not 文字运算符,与 && / || / ! 完全等价,可按团队习惯统一风格。
