藉助動態Closure實現規則引擎

業務場景:
用戶是否具備某個實體的訪問或修改權限,希望根據前臺配置的規則進行動態解析


前臺傳入字符串規則以及後臺解析的原型:

Closure judgement

String judgementContent="{ Map user, Map organization -> user.name == 'bruce'}"

judgement=new GroovyShell().evaluate(judgementContent)

println judgement
println judgement.parameterTypes
println judgement.class

println judgement([name: 'bruce'], [name: 'Fuzhou Telecom'])


後續需要解決的問題:

[list]
[*]多條規則的加載
[*]上下文環境的優雅傳遞
[*]規則匹配的性能問題(每秒>2000)
[/list]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章