drools5入门(1)

安装drools5插件

 

直接解压drools-5.0-eclipse-all.zipeclipse下的 dropins目录中。

 

建立一个Java Project

 

引入drools必备的jar

 

antlr-runtime-3.1.1.jar

core-3.4.2.v_883_R34x.jar

drools-api-5.0.1.jar

drools-compiler-5.0.1.jar

drools-core-5.0.1.jar

mvel2-2.0.10.jar

 

创建一个UserPOJO类:

package com.test;

 

publicclass User {

  

   private String loginName;

 

   public String getLoginName() {

      returnloginName;

   }

 

   publicvoid setLoginName(String loginName) {

      this.loginName = loginName;

   }

 

   @Override

   publicint hashCode() {

      finalint prime = 31;

      int result = 1;

      result = prime * result

           + ((loginName == null) ? 0 : loginName.hashCode());

      return result;

   }

 

   @Override

   publicboolean equals(Object obj) {

      if (this == obj)

        returntrue;

      if (obj == null)

        returnfalse;

      if (getClass() != obj.getClass())

        returnfalse;

      User other = (User) obj;

      if (loginName == null) {

        if (other.loginName != null)

           returnfalse;

      } elseif (!loginName.equals(other.loginName))

        returnfalse;

      returntrue;

   }

 

   @Override

   public String toString() {

      return"User [loginName=" + loginName + "]";

   }

}

 

 

新建一个规则定义文件

package com.test;

 

rule"rule_01"

   when

      $user : User(loginName != null)

   then

      System.out.println("hello, " + $user.getLoginName());

end

 

最后写一个RuleApp规则启动类:

package com.test;

 

import org.drools.KnowledgeBase;

import org.drools.KnowledgeBaseFactory;

import org.drools.builder.KnowledgeBuilder;

import org.drools.builder.KnowledgeBuilderFactory;

import org.drools.builder.ResourceType;

import org.drools.io.ResourceFactory;

import org.drools.runtime.StatefulKnowledgeSession;

 

publicclass RuleApp {

 

   publicstaticvoid main(String[] args) {

      KnowledgeBase knowledgeBase = createKnowledgeBase();

      StatefulKnowledgeSession session = knowledgeBase

           .newStatefulKnowledgeSession();

      try {

        User user = new User();

        user.setLoginName("zhangsan");

        session.insert(user);

        session.fireAllRules();

      } finally {

        session.dispose();

      }

   }

 

   privatestatic KnowledgeBase createKnowledgeBase() {

      KnowledgeBuilder builder = KnowledgeBuilderFactory

           .newKnowledgeBuilder();

      builder.add(ResourceFactory.newClassPathResource("helloworld.drl",

           User.class), ResourceType.DRL);

      if (builder.hasErrors()) {

        thrownew RuntimeException(builder.getErrors().toString());

      }

      KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();

      knowledgeBase.addKnowledgePackages(builder.getKnowledgePackages());

      return knowledgeBase;

   }

 

}

 

 

测试输出

hello, zhangsan

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java小卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值