资源简介
利用Java的动态编译、动态加载结合EasyRules实现业务规则的动态性的项目源码,具体详情请查看相关博客https://blog.csdn.net/qq_31142553/article/details/85013989
代码片段和文件信息
package com.hauxsoft.component;
import java.util.Collection;
import org.jeasy.rules.api.Facts;
import org.jeasy.rules.api.Rules;
import org.jeasy.rules.api.RulesEngine;
import org.jeasy.rules.core.DefaultRulesEngine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.hauxsoft.utils.baseRule;
import com.hauxsoft.utils.JavaRuleStorage;
/**
* 动态规则管理器
* @author z_hh
* @date 2018年12月12日
*/
@Component(“dynamicRuleManager“)
public class DynamicRuleManager {
public Builder builder() {
return new Builder(this);
}
public class Builder {
private Rules rules = new Rules();
private Facts facts = new Facts();
private RulesEngine engine = new DefaultRulesEngine();
private JavaRuleStorage javaRuleStorage;
public Builder(DynamicRuleManager dynamicRuleManager) {
javaRuleStorage = dynamicRuleManager.javaRuleStorage;
}
/**
* 设置参数,该参数为值传递,在规则里面或者执行完之后可以取到
* @param name
* @param value
* @return
*/
public Builder setParameter(String name object value) {
facts.put(name value);
return this;
}
/**
* 增加规则组(将指定所属分组的所有启用规则添加进来)
* @param groupName
* @return
*/
public Builder addRuleGroup(String groupName) {
CollectionseRule> rs = javaRuleStorage.listObjByGroup(groupName);
rs.stream().forEach(rules::register);
return this;
}
/**
* 运行规则引擎
*/
public Builder run() {
engine.fire(rules facts);
return this;
}
/**
* 获取指定参数,并转为指定类型
* @param pName
* @param pType
* @return
*/
public T getParameter(String pName Class pType) {
return facts.get(pName);
}
}
@Autowired
private JavaRuleStorage javaRuleStorage;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1226 2018-12-05 10:28 xboot-rule\.classpath
文件 268 2018-12-05 09:51 xboot-rule\.gitignore
文件 48337 2018-12-05 09:51 xboot-rule\.mvn\wrapper\maven-wrapper.jar
文件 116 2018-12-05 09:51 xboot-rule\.mvn\wrapper\maven-wrapper.properties
文件 1129 2018-12-05 09:51 xboot-rule\.project
文件 155 2018-12-05 09:51 xboot-rule\.settings\org.eclipse.core.resources.prefs
文件 243 2018-12-05 09:51 xboot-rule\.settings\org.eclipse.jdt.core.prefs
文件 90 2018-12-05 09:56 xboot-rule\.settings\org.eclipse.m2e.core.prefs
文件 145 2018-12-05 09:51 xboot-rule\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 417 2018-12-05 09:59 xboot-rule\.springBeans
文件 9113 2018-12-05 09:51 xboot-rule\mvnw
文件 5810 2018-12-05 09:51 xboot-rule\mvnw.cmd
文件 1173 2018-12-11 16:02 xboot-rule\pom.xm
文件 2255 2018-12-13 18:20 xboot-rule\src\main\java\com\hauxsoft\component\DynamicRuleManager.java
文件 572 2018-12-12 14:37 xboot-rule\src\main\java\com\hauxsoft\conf\RuleDefaultConf.java
文件 6084 2018-12-14 12:07 xboot-rule\src\main\java\com\hauxsoft\controller\console\JavaRuleController.java
文件 305 2018-12-05 10:14 xboot-rule\src\main\java\com\hauxsoft\dao\JavaRuleDao.java
文件 459 2018-12-05 11:52 xboot-rule\src\main\java\com\hauxsoft\data\CompileResult.java
文件 1850 2018-12-12 17:52 xboot-rule\src\main\java\com\hauxsoft\data\JavaRuleDTO.java
文件 573 2018-12-19 14:51 xboot-rule\src\main\java\com\hauxsoft\demo\rule\DemoRule1.java
文件 852 2018-12-19 14:54 xboot-rule\src\main\java\com\hauxsoft\demo\rule\TestController.java
文件 2400 2018-12-14 11:38 xboot-rule\src\main\java\com\hauxsoft\entity\JavaRuleDO.java
文件 2251 2018-12-14 15:15 xboot-rule\src\main\java\com\hauxsoft\listener\AppRunListener.java
文件 16416 2018-12-14 15:20 xboot-rule\src\main\java\com\hauxsoft\service\impl\JavaRuleServiceImpl.java
文件 2910 2018-12-05 14:44 xboot-rule\src\main\java\com\hauxsoft\service\JavaRuleService.java
文件 799 2018-12-14 11:38 xboot-rule\src\main\java\com\hauxsoft\utils\ba
文件 13723 2018-12-14 11:49 xboot-rule\src\main\java\com\hauxsoft\utils\DynamicRuleUtils.java
文件 955 2018-12-12 15:44 xboot-rule\src\main\java\com\hauxsoft\utils\JavaRuleStorage.java
文件 1209 2018-12-12 15:48 xboot-rule\src\main\java\com\hauxsoft\utils\MapJavaRuleStorage.java
文件 12 2018-12-05 10:14 xboot-rule\src\main\resources\static\console\module\rule\console.rule.css
............此处省略107个文件信息
评论
共有 条评论