codemirror

easy-rules spring boot集成使用二

最后都变了- 提交于 2020-04-15 09:28:45
【推荐阅读】微服务还能火多久?>>> 前边有简单使用spring boot + mvel + json 模版的格式,以下是集成spring spel的说明 具体的代码就不贴了,主要说明使用以及一些问题 注意对于beanResolver 的支持需要4.0.0-SNAPSHOT 版本 spel rule 代码定义 Rules rules = configRules. fetchConfigRules(); SpELRule spELRule = new SpELRule(); // setting an condition to be evaluated BeanResolver beanResolver = new SimpleBeanResovler( SpringBeanUtil. getApplicationContext()); spELRule. description( "bean demo"); spELRule. priority( 20); spELRule. when( "#user.age < 38"); spELRule. then( "@myService.setInfo(#user)", beanResolver); Facts facts = new Facts(); // 生成一个唯一id,方便基于数据id规则流程查询 user.

大数据实践(一):对葡萄牙银行数据集做简单的观察与探索

吃可爱长大的小学妹 提交于 2020-04-15 08:14:33
【推荐阅读】微服务还能火多久?>>> 实验 实验目标:对葡萄牙银行数据集做简单的观察与探索 完成时间:1小时(实验),0.5小时(实验报告) 实验要求: 查看数据的基本情况。 观察所有分类变量的取值情况,并且进行数据可视化 观察所有数值变量的数值分布情况,并且进行数据可视化 项目背景 本项目背景是基于葡萄牙银行电话营销数据的基础上,通过数据分析和机器学习,优化营销策略,提高营销效率。通过数据分析了解客户的需求,通过机器学习,根据客户和当时的社会经济情况,预测用户是否可能购买储蓄产品。 这个数据集是关于一家葡萄牙银行机构从2008年5月到2010年11月的直接电话营销活动,旨在促进现有客户的定期存款。它在UCI机器学习库中公开,链接: http://archive.ics.uci.edu/ml/datasets/Bank+Marketing# . 这是真实的商业数据,总共4万多条记录,每一条有21个属性。主要的任务目标是分类预测,用户是否会接受营销。(如果会y列则是yes) 此数据集中有新旧两个数据集,本例采用了bank-additional-full.csv 变量介绍 银行客户信息: 1 - age : 年龄 (数字) 2 - job : 工作类型 。管理员(admin),蓝领(blue-collar),企业家(entrepreneur),家庭主妇(housemaid),管理者(

easy-rules json 文件格式rule定义

戏子无情 提交于 2020-04-14 13:38:56
【推荐阅读】微服务还能火多久?>>> 这次就不帖完整代码了,只说明json 格式以及核心代码调用 json 格式 说明 就是一个json 数组,每个rule 的格式参考如下,需要包含name,condition,priority,actions ,description 不是必须的 { "name": "3", "description": "3", "condition": "user.name.length<50", "priority": 3, "actions": [ "System.out.println(\"default rule3 \")" ] } 一个参考多个rule 的json 文件 [{ "name": "1", "description": "1", "priority": 1, "compositeRuleType": "UnitRuleGroup", "composingRules": [ { "name": "2", "description": "2", "condition": "user.getAge()<28", "priority": 2, "actions": [ "System.out.println(\"UnitRuleGroup not ok rule2 \")" ] }, { "name": "3", "description":

easy-rules facts 规则引擎说明

白昼怎懂夜的黑 提交于 2020-04-14 11:58:15
【推荐阅读】微服务还能火多久?>>> 规则引擎是easy-rules facts 的核心,以下是关于规则引擎的一些参数说明 从3.1 开始,easy-rules提供了一个新的rule 执行方法InferenceRulesEngine 我们可以 进行推理的方式执行,直到有符合条件的rule 创建rule 引擎 包含了两种,默认的以及一个包含推理的 RulesEngine rulesEngine = new DefaultRulesEngine(); ​ // or ​ RulesEngine rulesEngine = new InferenceRulesEngine(); 运行规则引擎 rulesEngine. fire( rules, facts); 规则引擎的参数 rulePriorityThreshold 当碰到优先级超过此配额,忽略其他rule 的执行 skipOnFirstAppliedRule 如果碰到有异常,告诉引擎,停止执行其他的规则 skipOnFirstNonTriggeredRule 如果碰到一个rule没有触发,告诉引擎停止执行其他的 编码方式控制参数 RulesEngineParameters parameters = new RulesEngineParameters() . rulePriorityThreshold( 10) .

easy-rules facts 说明

荒凉一梦 提交于 2020-04-14 11:57:42
【推荐阅读】微服务还能火多久?>>> facts 是方便easy-rules传递数据的地方,同时也是线程不安全的地方,facts 是一个hashmap,我们可以在不同的优先级的 rule 中分享以及操作facts facts 格式 HashMap < String, Object > facts 代码方式定义 Facts facts = new Facts(); facts. add( "rain", true); rule 引用facts 数据 通过注解@facts @ Rule class WeatherRule { ​ @ Condition public boolean itRains( @ Fact( "rain") boolean rain) { return rain; } ​ @ Action public void takeAnUmbrella( @ Fact( "rain") Facts facts) { System. out. println( "It rains, take an umbrella!"); // can add/remove/modify facts } ​ } 参考资料 https://github.com/j-easy/easy-rules/wiki/defining-facts 来源: oschina 链接: https://my

easy-rules rule 格式说明

≡放荡痞女 提交于 2020-04-14 11:57:18
【推荐阅读】微服务还能火多久?>>> easy-rules 提供了方便的注解,我们可以直接基于pojo编写rule rule 方法签名 public interface Rule { ​ /** * This method encapsulates the rule's conditions. * @return true if the rule should be applied given the provided facts, false otherwise */ boolean evaluate( Facts facts); ​ /** * This method encapsulates the rule's actions. * @throws Exception if an error occurs during actions performing */ void execute( Facts facts) throws Exception; ​ //Getters and setters for rule name, description and priority omitted. ​ } pojo 注解模式 参考 @ Rule( name = "my rule", description = "my rule description", priority =

easy-rules mvel yaml 格式规则配置&&试用

非 Y 不嫁゛ 提交于 2020-04-13 16:52:41
【今日推荐】:为什么一到面试就懵逼!>>> 网上关于easy-rules 介绍的挺多了,以下是一个学习,以及一些学习说明 demo 说明 demo 是一个简单的用户实体,同时添加了一些帮助方法,对于规则的定义使用yaml 文件(实际上我们可以基于数据库,cache,s3文件系统。。。) 包含了,在实际使用中我么如何修改数据以及mvel 的集成使用,以及一些监听事件的学习 项目准备 pom.xml < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" > < modelVersion > 4.0.0 < /modelVersion> < groupId > com. dalong < /groupId> < artifactId > myruleapps < /artifactId> < version > 1.0 - SNAPSHOT < /version> < properties > < project. build.

easy-rules 组合rule说明

只愿长相守 提交于 2020-04-13 08:14:11
easy-rules 目前支持三种组合模式的rule,以下是一个介绍,实际上我们可以参考实现进行扩展 UnitRuleGroup 代码 @ Override public boolean evaluate( Facts facts) { if ( ! rules. isEmpty()) { for ( Rule rule : rules) { if ( ! rule. evaluate( facts)) { return false; } } return true; } return false; } 说明 只要一个不符合,就都不执行了,就是要么都执行,要么都不执行 ActivationRuleGroup 代码 @ Override public boolean evaluate( Facts facts) { for ( Rule rule : rules) { if ( rule. evaluate( facts)) { selectedRule = rule; return true; } } return false; } 说明 选择第一个,其他的就不执行了 ConditionalRuleGroup 代码 @ Override public boolean evaluate( Facts facts) { successfulEvaluations = new

easy-rules mvel yaml 格式规则配置&&试用二——rule 数据返回结果

怎甘沉沦 提交于 2020-04-13 08:12:55
默认上easy-rules 的数据是没有返回值的,同时对于基于yaml 配置方式更是如此,官方给予我们了一种解决方法 就是基于pojo添加返回字段,但是基于yaml 配置的方式就不方便了,实际上我们可以通过组合的模式——添加一个 最总解决的rule(使用pojo)同时配置一个比较大的优先级,同时这个rule,永远都是执行的就可以解决了,以下是 一个实践 项目结构 详细的可以参考 https://www.cnblogs.com/rongfengliang/p/12686702.html pom.xml < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" > < modelVersion > 4.0.0 < /modelVersion> < groupId > com. dalong < /groupId> < artifactId > myruleapps < /artifactId> < version > 1.0 -

easy-rules yaml 组合模式rule 配置

旧街凉风 提交于 2020-04-13 08:12:21
easy-rules 支持组合模式,但是一般我们看到的都是基于代码的,以下是一个基于yaml配置的组合模式rule 的试用 项目结构 pom.xml < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" > < modelVersion > 4.0.0 < /modelVersion> < groupId > com. dalong < /groupId> < artifactId > myruleapps < /artifactId> < version > 1.0 - SNAPSHOT < /version> < properties > < project. build. sourceEncoding > UTF - 8 < /project.build.sourceEncoding> < encoding > UTF - 8 < /encoding> < java. version > 1.8 < /java