日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

drools规则引擎源码解析

發(fā)布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 drools规则引擎源码解析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

drools規(guī)則引擎源碼解析

文章目錄

  • drools規(guī)則引擎源碼解析
    • 一、規(guī)則編譯

一、規(guī)則編譯

org.drools.compiler.kie.builder.impl.KieBuilderImpl#buildAll(java.util.function.BiFunction<org.drools.compiler.kie.builder.impl.InternalKieModule,java.lang.ClassLoader,org.drools.compiler.kie.builder.impl.KieModuleKieProject>, java.util.function.Predicate<java.lang.String>)
=>
org.drools.compiler.kie.builder.impl.AbstractKieProject#buildKnowledgePackages(org.drools.compiler.kproject.models.KieBaseModelImpl, org.drools.compiler.kie.builder.impl.ResultsImpl, java.util.function.Predicate<java.lang.String>)
=>
org.drools.compiler.kie.builder.impl.KieBuilderImpl#buildKieProject(org.drools.compiler.kie.builder.impl.ResultsImpl, org.drools.compiler.kie.builder.impl.KieModuleKieProject, org.drools.compiler.compiler.io.memory.MemoryFileSystem)
=>
org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl#build(boolean) 編譯

org.drools.compiler.builder.impl.KnowledgeBuilderImpl#buildRules 編譯規(guī)則集
=>
org.drools.compiler.builder.impl.KnowledgeBuilderImpl#compileKnowledgePackages 編譯規(guī)則包(重點
=>
org.drools.compiler.builder.impl.KnowledgeBuilderImpl#compileFunctions 編譯function(此處dialect一定為java)
=>
org.drools.mvel.java.JavaDialect#addFunction 增加function (此處使用JavaCompiler源碼編譯工具類,因此依賴java源碼或class字節(jié)碼)

org.drools.mvel.java.JavaDialect#addFunction 編譯function

  • function編譯舉例
function String hello(String applicantName) {return "Hello " + applicantName + "!"; }

編譯結(jié)果

package com.example.demo;import com.example.demo.*;import com.example.drools.Person;public class Hello implements java.io.Externalizable {private static final long serialVersionUID = 510l;public static String hello(String applicantName) throws Exception {return "Hello " + applicantName + "!";} public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException {}public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException {} }

未完待續(xù)……

總結(jié)

以上是生活随笔為你收集整理的drools规则引擎源码解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。