Drools规则引擎语法样例分析(二)
2017-02-23 10:09
225 查看
基本的匹配规则
1.1变量
drools使用匹配的方式对Fact进行对比account: Account(credit>100)
找到credit值大于100的Account实例
$account Account($credit:Credit)
$account:Account(credit>100) Cosumer(account==$account)
找到Cosumer ,使得属性值account满足credit>100
1.2类型
支持各种java数据类型String
Cosumer(name="Keyu")
正则
Customer(name matches "[A-Z][a-z]+")
Date:日期类型
Account(dateCreate > "01-Feb-2009")
Boolean:布尔类型
Transaction(isApprove == true)
Enum:枚举类型
Account(type == Account.Type.STUDENT)
1.3注释
与java相同 // # /* */1.4包
与java相同1.5导入
与java相同注意“导入方法时之恩给你导入静态方法
1.6全局变量
global ReportFactory reportFactory;
1.7函数
规则文件中可以定义函数,也可以再外部类中定义static静态方法java:
public static double calculateAccount(Account account) { return 100 + account.balance * 1.2; }
drl:
import ****.Account import ****.calculateAcccount rule "validation account" when $account : Account(balance > 100) then Account(balance == calculateAccount($account)); end
1.8方言
使用方言简化表达式方言默认的是java,drools也支持mvel,在package的后面声明该规则文件使用的方言
dialect "mvel"
mvel
一种基于java应用程序的表达式,支持属性与方法的直接访问
Bean属性
$customer.address.postalCode = "123"
等同于
$customer.getAddress().setPostalCode("123")
访问List数据结构
$customer.accounts[3]
等同于
$customer.getAccounts(3)
原文地址
相关文章推荐
- 规则引擎的介绍与Drools的流程分析
- 规则引擎的介绍与Drools的流程分析
- 使用 Drools 规则引擎实现业务逻辑
- 基于 Jboss Drools 规则引擎开发框架
- Java规则引擎-Drools
- Java规则引擎-Drools
- 使用 Drools 规则引擎实现业务逻辑
- JBoss Rules 学习笔记(三)——DRools规则引擎(上)
- Java规则引擎-Drools
- Java规则引擎-Drools
- Java规则引擎-Drools
- 规则引擎 学习之--Drools
- Drools - 规则引擎可以用了么?
- 开源规则引擎 Drools 4.0 发布
- Java规则引擎-Drools
- Drools规则引擎之WorkingMemory
- JBoss Rules 学习(三): Drools规则引擎 (上)
- Java规则引擎:开源Drools项目
- Java规则引擎-Drools
- Java规则引擎-Drools