编写一个drools的使用实例
时间: 2023-08-18 11:08:03 浏览: 113
好的,下面是一个简单的 Drools 使用实例,假设我们有一个规则:如果购买金额大于 1000 元,则享受 10% 的折扣,否则不享受折扣。
1. 创建一个规则文件,例如 `discount.drl`:
```
package com.example.rules
import com.example.model.Order
rule "discount rule"
when
$order : Order(amount > 1000)
then
$order.setDiscount(0.1);
update($order);
end
```
2. 创建一个订单类 `Order.java`:
```
package com.example.model;
public class Order {
private int amount;
private double discount;
public Order(int amount) {
this.amount = amount;
this.discount = 0;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public double getDiscount() {
return discount;
}
public void setDiscount(double discount) {
this.discount = discount;
}
}
```
3. 创建一个规则引擎并加载规则文件:
```
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("discountKS");
Order order1 = new Order(800);
Order order2 = new Order(1200);
kSession.insert(order1);
kSession.insert(order2);
kSession.fireAllRules();
```
4. 运行程序,输出订单的折扣信息:
```
System.out.println("order1 discount: " + order1.getDiscount());
System.out.println("order2 discount: " + order2.getDiscount());
```
输出结果为:
```
order1 discount: 0.0
order2 discount: 0.1
```
可以看到,第一个订单金额不足 1000 元,没有享受折扣;第二个订单金额超过 1000 元,享受了 10% 的折扣。
阅读全文