• 大小: 154KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Java
  • 标签: EasyRules  动态规则  

资源简介

利用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.xml

     文件        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.xml

     文件       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\baseRule.java

     文件      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个文件信息

评论

共有 条评论

相关资源