我有一個獨立的Java應用程序,爲此我必須集成規則引擎。我應該使用屬性文件或XML文件來定義規則。我需要使用規則引擎來讀取在屬性或XML文件中定義的這些規則,並相應地在應用程序中實現代碼。獨立Java應用程序的規則引擎
任何這樣的規則引擎(開源),我可以用我的應用程序。請注意,我不想要任何我需要在Application Server或Web Server中部署的規則引擎。我需要有一些jar文件,我可以直接將它用於我的應用程序。
請指導我是否有任何這樣的規則引擎可以使用?
我有一個獨立的Java應用程序,爲此我必須集成規則引擎。我應該使用屬性文件或XML文件來定義規則。我需要使用規則引擎來讀取在屬性或XML文件中定義的這些規則,並相應地在應用程序中實現代碼。獨立Java應用程序的規則引擎
任何這樣的規則引擎(開源),我可以用我的應用程序。請注意,我不想要任何我需要在Application Server或Web Server中部署的規則引擎。我需要有一些jar文件,我可以直接將它用於我的應用程序。
請指導我是否有任何這樣的規則引擎可以使用?
你可以去Drools,它也可以在獨立程序中使用。
我正在標記你的答案,因爲你的回答並不能解釋爲什麼你會推薦使用口水。從問題中可以明顯看出,用戶已經完成了基本的Google搜索。 – snegi 2015-01-19 20:55:37
插頭警告!
我有偏見,因爲它是我自己的項目,但如果你想要一個非常快速輕巧規則引擎,你可以檢查出Roolie。
該項目背後的理念是根據我個人的經驗,JSR-94是矯枉過正,大多數規則引擎是太重了,有太多的依賴和陡峭的學習曲線。
Roolie並未涉及更改應用程序狀態的「功能性」規則(這些應該成爲Java反正恕我直言)。
相反,它允許開發者實現具有單個「通」方法簡單的規則,並且在XML文件中帶短路布爾邏輯一起連鎖它們。它沒有任何運行時依賴關係,速度非常快。
這是一個簡單的解決方案,以一個簡單的問題(即用戶可以看到一個文件?只有在它們「登錄」,「管理員」或「超級用戶」和「有足夠的職位」)。
複合規則將爲「UserCanSeeFile」,並由「IsLoggedIn」,「IsAdmin」,「IsPowerUser」和「HasEnoughPosts」組成。
如果以後不在乎他們有多少職位,讓他們看到一個文件,只需抽出的是XML行和你做。
我在java中使用了一些表達式評估庫進行了實驗。我發現MVEL是最好的。在我的情況下,我正在閱讀數據庫中的「規則」。所以,我的規則看起來就像
player.platform == '的iOS' & &(player.ltv> 100 || player.status> = GOLD)
現在我所做的就是要分析上面的表達式對所有的變量。在我的情況下,變量是帶點的任何標記(object.method)。它爲我工作。不知道它是否會起作用。
但是,一旦所有變量都被替換爲值。我只是稱其爲MVEL.evaluate()。
此外在我的情況下,我需要評估的所有表達式都會以布爾結果給出。但是MVEL可以用不同的結果類型來評估任何表達式。
你已經試過任何軟件嗎?如果是這樣,請提及這一點:您現在可能會收到您可能已經嘗試過(並被拒絕)的建議。另外,你能否更詳細地解釋這些規則(例子會有所幫助)。 – 2012-04-27 08:19:25