步骤:
- 在Drools Workbench 上配置对应的规则
- 发布对应的规则为jar包
- 搭建Drools6.5开发环境
- 配置规则引擎Maven依赖
- 测试引用远程规则
- 测试DEMO
操作:
1.在Drools Workbench 上配置对应的规则
1.1编写>项目编写
1.2新建项目>项目
1.3添加项目名/项目描述/组ID/构建ID/版本,并点击完成。
1.4添加数据对象
添加规则DRL文件
项目构建后目录结构
2.发布对应的规则为jar包
选择项目构建并部署:
2.1构建成功后到构件库查看:
2.3查看到构件资料库中已经生成fintech-risk_control-1.0.0.jar及fintech-risk_control-1.0.0.pom
2.4查看pom文件:
3.搭建Drools6.5开发环境
3.1构建springboot和Drools6.5整合的规则服务项目:
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不在同一台机器,则需要请求授权(账号和密码),建议分开部署不同的机器)
添加以下内容用于远程请求规则仓库授权:
<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>
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