@Service
@Slf4j
public class KieServiceImpl implements KieService {
private StatelessKieSession kieSession;
private KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
@Resource
private RiskConfigService riskConfigService;
//商品规则处理
@Resource
private ProductRiskService productRiskService;
@Override
public void loadRules(String ruleCode) {
RiskConfig riskConfig = riskConfigService.queryRiskConfig(ruleCode);
if(riskConfig!=null){
loadRule(ruleCode,riskConfig.getRiskContent());
}
}
@Override
public void removeRule(String ruleName) {
if (kbase.getRule("rules", ruleName) != null) {
kbase.removeRule("rules", ruleName);
log.info("remove rule: rules." + ruleName);
kieSession = kbase.newStatelessKieSession();
printRules();
} else {
log.error("no rule: rules." + ruleName);
}
}
@Override
public void execute(Object object) {
this.kieSession.execute(object);
}
@PostConstruct
public void init() {
loadRulesAll();
}
private void loadRulesAll() {
RiskConfig config = new RiskConfig();
List<RiskConfig> riskConfigList = riskConfigService.queryRiskConfigs(config);
if(riskConfigList!=null){
for(RiskConfig riskConfig : riskConfigList){
loadRule(riskConfig.getRiskCode(),riskConfig.getRiskContent());
}
}
}
private void loadRule(String ruleCode,String ruleContent){
try {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newByteArrayResource(ruleContent.getBytes()), ResourceType.DRL);
if(kbuilder.hasErrors()){
log.error("加载规则模板引擎异常{},{}",ruleCode,kbuilder.getErrors());
return;
}
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
kieSession = kbase.newStatelessKieSession();
printRules();
setGlobal();
}catch (Exception e){
log.error("加载规则模板引擎异常",e);
}
}
private void setGlobal(){
kieSession.setGlobal("productRiskService", productRiskService);
}
private void printRules() {
log.info("print rule start: ---------");
kbase.getKnowledgePackages().forEach(knowledgePackage ->
knowledgePackage.getRules().forEach(rule ->
log.info("print rule: " + knowledgePackage.getName() + "." + rule.getName())));
log.info("print rule end: ---------");
}
}
Drools规则引擎介绍及实践
2024-12-27 05:12
最新文章
百度站长平台:多种站内需求挖掘功能上线
站长之家(Chinaz.com)3月25日消息 百度站长平台昨日发布公告称,百度站内搜索上线了多种新功能:在站点的文章页中提供关键词推荐功能(包括嵌入式关键词推荐和悬浮式关键词推荐两种形式)、以及内文提词功能;搜索框新增了侧滑、弹窗、悬
杰奇cms网站自动生成文章自动配图发布站群系统
AI智能写作软件,批量生成自动发布到网站后台支持任意CMS批量导入关键词,自动生成、自动配图、自动发布、不限制网站、域名数量。支持生成中、英、越、日等所有语言文章。我们有专业的团队24小时维护,为您保驾护航。1.支持所有语言输出输入
谷歌SEO优化,如何助力我的Authority Site提升?
在当今互联网信息爆炸的时代,拥有一个高权威性的网站(Authority Site)是每个网站运营者的梦想。这不仅意味着更高的流量,更优质的用户,还意味着更多的商业机会。作为一名在SEO领域摸爬滚打多年的从业者,我深知谷歌SEO优化对于提升Auth
飞屏无法连接电脑版(飞屏无法连接电脑版网络)
好酷屋教程网小编为您收集和整理了飞屏无法连接电脑版(飞屏无法连接电脑版网络)的相关教程:飞屏无法连接电脑版网络先打开歪飞开关 点击右下角无线网络连接的图标或者点击左下角开始-设置-网络连接-双击无线网络连接-查看无线网络 在
短视频平台源码,短视频软件开发,短视频app源码搭建
一、短视频平台源码的功能1、短视频功能:短视频是短视频平台源码的主要功能,用户可以发布、编辑、观看短视频。2、直播功能:短视频软件开发实现直播功能,主播可以带货、连麦、进行PK。3、聊天功能:短视频app源码支持用户聊天,方便用户
金东一医生-哈尔滨市金东一医生产阴道紧致手术价格及案例口碑深解析
作为哈尔滨市产阴道紧致手术好的医生,金东一医生产阴道紧致手术精细、效果良好,引得哈尔滨市整友纷纷关注,大家想知道金东一产阴道紧致手术价位多少钱?金东一医生产阴道紧致手术贵不贵?金东一产阴道紧致手术收费价位合理,快来看看。下
自治区农业农村厅办公室关于印发2024年基层农业技术推广服务能力提升项目实施方案的通知(桂农厅办发〔2024〕10号)
各市、县(区)农业农村局,自治区蚕业技术推广站:为保证基层农业技术推广服务能力提升项目顺利实施,进一步激发各地农科院(所)改革创新活力,提升科研推广服务能力,推动现代特色农业高质量发展,现将《2024年基层农业技术推广服务能力
相关文章
推荐文章