数据网格查询:表达式语言、值提取器与查询优化
表达式语言与值提取器
熟悉流行的表达式语言(如 MVEL、OGNL 或 SpEL)的人会发现,使用这些语言可以轻松实现之前的值提取器。不仅能进行简单的属性提取,还能使用更复杂的表达式进行提取。为了证明其可用性,已经在相关工具中实现了 MVEL、OGNL、SpEL、Groovy 甚至 Java 6 脚本的值提取器,这样就能轻松地将喜欢的表达式语言与相关系统结合使用。
其他内置值提取器
除了最常用的 ReflectionExtractor,还有其他几种内置的值提取器:
1. IdentityExtractor :最简单的提取器,不从目标对象中提取任何内容,而是直接返回目标对象本身。当希望过滤器直接对缓存值本身进行操作时,这个提取器会很有用,通常在值为简单类型(如基本数字类型或字符串)时使用。
2. ChainedExtractor 和 MultiExtractor :这是两种复合值提取器,它们都接受一个值提取器数组作为构造函数参数,但使用方式不同。
- ChainedExtractor :依次执行提取器,将前一个提取器的结果作为下一个提取器的目标对象。例如,从 Transaction 实例中提取 accountId 属性:
ValueExtractor ex =
new ChainedExtractor(new ValueExtractor[] {
new Reflect
超级会员免费看
订阅专栏 解锁全文
2842

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



