步骤:

  • 在Drools Workbench 上配置对应的规则
  • 发布对应的规则为jar包
  • 搭建Drools6.5开发环境
  • 配置规则引擎Maven依赖
  • 测试引用远程规则
  • 测试DEMO

操作:

1.在Drools Workbench 上配置对应的规则

1.1编写>项目编写

Drools6.5使用Drools6.5 Workbench 上的规则

1.2新建项目>项目

Drools6.5使用Drools6.5 Workbench 上的规则

1.3添加项目名/项目描述/组ID/构建ID/版本,并点击完成。

Drools6.5使用Drools6.5 Workbench 上的规则

1.4添加数据对象

Drools6.5使用Drools6.5 Workbench 上的规则

Drools6.5使用Drools6.5 Workbench 上的规则

 

添加规则DRL文件

Drools6.5使用Drools6.5 Workbench 上的规则

项目构建后目录结构

Drools6.5使用Drools6.5 Workbench 上的规则

2.发布对应的规则为jar包

选择项目构建并部署:

Drools6.5使用Drools6.5 Workbench 上的规则

2.1构建成功后到构件库查看:

Drools6.5使用Drools6.5 Workbench 上的规则

2.3查看到构件资料库中已经生成fintech-risk_control-1.0.0.jar及fintech-risk_control-1.0.0.pom

Drools6.5使用Drools6.5 Workbench 上的规则

2.4查看pom文件:

Drools6.5使用Drools6.5 Workbench 上的规则

3.搭建Drools6.5开发环境

3.1构建springboot和Drools6.5整合的规则服务项目:

Drools6.5使用Drools6.5 Workbench 上的规则

3.2 pom依赖为:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-api</artifactId>
        <version>${drools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-core</artifactId>
        <version>${drools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-compiler</artifactId>
        <version>${drools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-compiler</artifactId>
        <version>${drools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-decisiontables</artifactId>
        <version>${drools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-templates</artifactId>
        <version>${drools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-ci</artifactId>
        <version>${drools.version}</version>
    </dependency>
    <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-spring</artifactId>
        <version>${drools.version}</version>
    </dependency>
</dependencies>

4.配置规则引擎Maven依赖

4.1添加的规则仓库配置为:

<repositories>
    <repository>
        <id>guvnor-m2-repo</id>
        <name>Guvnor M2 Repo</name>
        <url>http://192.168.2.216:8081/kie-drools-wb/maven2/</url>
    </repository>
</repositories>

4.2 在本地的maven的setting.xml文件中添加规则仓库授权信息(如果规则服务和Drools Workbench不在同一台机器,则需要请求授权(账号和密码),建议分开部署不同的机器)

Drools6.5使用Drools6.5 Workbench 上的规则

添加以下内容用于远程请求规则仓库授权:

<proxies>  
       <proxy>  
         <id>guvnor-m2-repo</id>  
         <active>true</active>  
         <protocol>http</protocol>  
         <host>192.168.2.216</host>  
         <port>8081</port>  
         <username>tomcat</username>  
         <password>tomcat</password>  
       </proxy>  
     </proxies> 

Drools6.5使用Drools6.5 Workbench 上的规则

5.测试引用远程规则

@Configuration
@ComponentScan(basePackages = {"com.xmjr.fintech.risk.api"})
public class DroolsConfiguration {

   @Autowired
   KieContainer kieContainer;

   @Bean
   public KieContainer kieContainer() throws Exception{
      KieServices ks = KieServices.Factory.get();
     //获取远程的规则仓库中的规则包
      KieContainer kContainer = ks.newKieContainer(
            ks.newReleaseId("com.xmjr.fintech", "fintech-risk-control", "1.0.0") );
      return kContainer;
   }

   @Bean
   public KieSession kieSession() {
      return kieContainer.newKieSession();
   }

}

6.样例DEMO

   Drools workbench文件及DEMO项目代码

 

相关文章:

  • 2021-03-31
  • 2021-11-04
  • 2021-11-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-29
猜你喜欢
  • 2022-01-18
  • 2021-12-06
  • 2022-12-23
  • 2021-08-21
  • 2021-07-21
相关资源
相似解决方案