/**
* Tools for Drools
* @author kevin
* @version Date: 2009-7-7 Time: 10:34:58
*/
public class DroolsUtil {
private KnowledgeAgent kagent;
private static DroolsUtil instance;
/**
* return the default agent with name "agent" and interval "5"
*/
private DroolsUtil(){
this.kagent = getKnowledgeAgent("agent","5");
}
/**
* return the agent with the specified name and interval
* @param agentName The name of the agent
* @param interval The interval to scan resources
*/
private DroolsUtil(String agentName,String interval){
this.kagent = getKnowledgeAgent(agentName,interval);
}
/**
* return the instance with default agent
* @return DroolsUtil's instance
*/
public static DroolsUtil getInstance(){
if(instance == null){
instance = new DroolsUtil();
}
return instance;
}
/**
* return the instance with agent which is given specified name and interval
* @param agentName The name of the agent
* @param interval The interval to scan resources
* @return DroolsUtil's instance
*/
public static DroolsUtil getInstance(String agentName,String interval){
if(instance == null){
instance = new DroolsUtil(agentName,interval);
}
return instance;
}
/**
* Get the KnowledgeAgent and make it scan the resources per 5 seconds
* @param agentName The name of the agent
* @param interval The interval to scan resources
* @return KnowledgeAgent
*/
public KnowledgeAgent getKnowledgeAgent(String agentName,String interval){
ResourceChangeScannerConfiguration sconf = ResourceFactory.getResourceChangeScannerService().newResourceChangeScannerConfiguration();
sconf.setProperty("drools.resource.scanner.interval",interval);
ResourceFactory.getResourceChangeScannerService().configure(sconf);
ResourceFactory.getResourceChangeScannerService().start();
ResourceFactory.getResourceChangeNotifierService().start();
KnowledgeAgentConfiguration aconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
aconf.setProperty("drools.agent.scanDirectories","true");
aconf.setProperty("drools.agent.newInstance","true");
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent(agentName,aconf);
kagent.applyChangeSet(ResourceFactory.newClassPathResource("resource.xml"));
return kagent;
}
/**
* Get the KnowledgeBase
* @return KnowledgeBase
*/
public KnowledgeBase getKnowledgeBase(){
return kagent.getKnowledgeBase();
}
/**
* Get the StatefulKnowledgeSession
* @return StatefulKnowledgeSession
*/
public StatefulKnowledgeSession getStatefulKnowledgeSession(){
return getKnowledgeBase().newStatefulKnowledgeSession();
}
/**
* Get the StatelessKnowledgeSession
* @return StatelessKnowledgeSession
*/
public StatelessKnowledgeSession getStatelessKnowledgeSession(){
return getKnowledgeBase().newStatelessKnowledgeSession();
}
}
分享到:
相关推荐
drools5提供了一种解决方案,允许我们在运行时动态地加载和应用新的或修改过的规则,极大地提高了灵活性。 动态加载规则的核心概念是Drools的KieSession,它是规则引擎的执行环境。通过创建一个KieSession实例,...
总的来说,DROOLS 6.5作为JAVA规则引擎,为业务规则管理提供了强大且灵活的解决方案。动态规则功能使得规则可以在运行时动态调整,极大地提高了业务的适应性和响应速度。通过学习和应用DROOLS,开发者可以构建出更加...
**规则引擎Drools.NET移植版** Drools是一款强大的业务规则管理系统,源自Java社区,以其灵活、高效和可扩展的特性而广受赞誉。...对于需要处理大量业务规则的.NET项目,Drools.NET无疑是一个值得考虑的解决方案。
此时,IDEA 将识别这是一个 Drools 规则文件,并为你提供基本的语法提示。 3. **智能提示与代码格式化**: 尽管导入了设置,但描述中提到,可能无法直接获取代码格式化的功能。这可能是因为 IDEA 的默认设置尚未...
在学习和实现过程中,可以参考Drools官方文档,以及相关的技术博客和论坛讨论,获取更多细节和解决方案。 总结,Drools的动态规则管理是一项复杂但实用的功能,它允许我们在程序运行期间动态调整业务逻辑,提高系统...
Drools是一款开源的业务规则管理系统(BRMS),它提供了一套完整的解决方案,包括业务规则引擎、工作流引擎、以及业务资产管理和模拟工具等。其中,规则流是Drools的重要组成部分之一,用于控制规则执行的顺序,使得...
17. **异常问题汇总**:列出了在使用Drools时可能遇到的异常问题及其解决方案。 ### 其他信息 18. **文档更新与联系方式**:文档说明了正在持续更新中,并提供了作者的联系方式、技术交流群和博客地址。 19. **...
Drools是一款强大的Java规则引擎,它为业务规则管理提供了高效、灵活且可扩展的解决方案。作为基于模型的决策自动化工具,Drools允许开发者将复杂的业务逻辑编码为一系列易于理解和维护的规则,这些规则可以独立于...
本篇文章将深入探讨在使用Drools进行规则创建时可能遇到的问题及其解决方案。 首先,我们来看看标题“Drools BRMS Rule创建问题?”所涉及的关键知识点。Drools的规则创建主要依赖于其规则语言DRL(Drools Rule ...
本教程旨在帮助读者理解和掌握如何使用Drools5来构建高效、灵活的业务规则解决方案。 Drools5的核心概念包括规则(Rules)、工作流(Workflows)和决策表(Decision Tables)。规则是业务逻辑的表达,由条件和动作...
【Drools规则引擎技术分享】 在电商平台上,促销活动的规则制定往往涉及到复杂的业务逻辑。例如,根据用户购买订单的金额...对于处理如电商平台促销活动这类依赖于动态规则的场景,Drools无疑是一个理想的解决方案。
其中,Drools是最流行的开源规则引擎之一,而VisualRules和ILog则是知名的商业解决方案。 **1.2 Drools规则引擎** Drools是一款开源的业务规则管理系统(BRMS),它使用了Charles Forgy的RETE算法,这是一种高效的...
在这种背景下,规则引擎作为一种灵活高效的解决方案应运而生。本文将重点探讨如何利用Drools这一开源规则引擎来优化Java应用程序中的业务逻辑处理。 #### 什么是Drools规则引擎 Drools是一款用Java编写的开源规则...
Drools5是该系列中的一个重要版本,支持多种规则语言和API接口,为用户提供了一套完整的解决方案。 #### 二、Drools5开发环境搭建 **2.1 下载开发工具** 为了搭建Drools5的开发环境,首先需要确保已安装Java ...
在本集成解决方案中,我们将探讨如何将外部应用与 Drools Workbench 6.1 集成,以便在 Drools 工作平台上管理和执行自定义的规则。 首先,我们需要安装 Drools Workbench。这里推荐使用 jbpm6-console 的最完整版,...
它提供了全面的规则引擎解决方案,包括规则的编写、测试、部署和执行。Drools支持基于DMN(决策模型和表示法)的业务决策建模,以及传统基于规则的系统。 2. **规则引擎原理** 规则引擎将业务规则从应用代码中分离...
《 Drools 实例:深入...总结,Drools 作为强大的实时规则引擎,为企业提供了一种灵活且高效的业务规则管理解决方案。通过实例学习,可以加深对 Drools 工作原理的理解,并在实际项目中发挥其优势,解决复杂业务问题。
Drools5作为一款成熟的规则引擎,为企业级应用提供了灵活高效的业务规则管理解决方案。通过上述介绍的学习准备、规则编写与运行以及API使用等方面的知识点,开发者可以迅速掌握Drools5的基本使用方法,进而根据具体...
综上所述,Drools5是一个功能强大、易于使用的业务规则管理系统,它为企业提供了灵活高效的业务规则管理解决方案。无论是对于初学者还是经验丰富的开发人员,掌握Drools5都将是一项非常有价值的技术。
### Drools 入门指南知识点总结 #### 一、技术简介 **1.... Drools是一款基于Java的开源业务规则管理系统(BRMS),它能够帮助...无论是简单的HelloWorld示例还是复杂的会员积分系统,Drools都能提供有效的解决方案。