我有一个独立的Java应用程序,为此我必须集成一个规则引擎。我应该使用属性文件或XML文件来定义规则。我需要有规则引擎来读取在属性或XML文件中定义的这些规则,并相应地在应用程序中实现代码。
任何这样的规则引擎(open-source),,我都可以将它用于我的应用程序。请注意,我不希望在Application或Web中部署任何规则引擎。我需要有某种jar文件,在那里我可以直接将它用于我的应用程序。
请指导我是否有这样的规则引擎,我可以利用?
发布于 2012-04-27 08:22:12
您可以使用Drools,它也可以在独立程序中使用。
发布于 2013-03-31 09:14:24
塞上警报!
我有偏见,因为这是我自己的项目,但如果你想要一个极其快速和轻量级的规则引擎,你可以查看罗莉。
这个项目背后的哲学是基于我个人的经验,即JSR-94是过火的,大多数规则引擎太重,依赖性太多,学习曲线陡峭。
Roolie不处理更改应用程序状态的“功能”规则(无论如何,这些规则应该是Java的,IMHO)。
相反,它允许开发人员使用单个"passes“方法实现简单规则,并将它们与XML文件中的短路布尔逻辑链接在一起。它没有任何的运行时依赖,而且速度非常快。
它是一个简单问题的简单解决方案(即用户能看到一个文件吗?)只有当他们是“登录”,“管理”或“强大的用户”,和“有足够的帖子”)。
综合规则为"UserCanSeeFile“,由"IsLoggedIn”、"IsAdmin“、"IsPowerUser”和"HasEnoughPosts“组成。
如果以后您不关心他们有多少帖子要让他们看到一个文件,只要按一下XML行,您就完成了。
发布于 2015-03-06 00:07:19
我在java中尝试了几个表达式评估库。我发现MVEL是最好的。在我的例子中,我从数据库中读取“规则”。所以我的规则看起来
player.platform == 'iOS‘&( player.ltv > 100 \\ player.status >=黄金)
现在我所做的就是解析上面所有变量的表达式。在我的例子中,变量是带有点( object.method )的任意标记。对我起作用了。不知道你会不会成功。
但是一旦所有变量都被值所取代。我刚刚调用了一个MVEL.evaluate()。
在我的例子中,我需要计算的所有表达式都将在布尔结果中给出。但是,MVEL可以计算任何不同结果类型的表达式。
https://stackoverflow.com/questions/10347161
复制相似问题