Java 为什么规则引擎而不是易于理解的单行属性?

Java 为什么规则引擎而不是易于理解的单行属性?,java,drools,java-ee-6,rule-engine,redhat-brms,Java,Drools,Java Ee 6,Rule Engine,Redhat Brms,我是规则引擎的新手,如果这个问题很基本,请耐心听我说。规则引擎的所有教程都说,您可以将业务逻辑移到代码之外,由BAs/最终用户更新,而不是将其放在Java代码中 我有以下问题 但是为什么我们不能编写代码从属性文件中读取值并执行相同的操作呢 此外,与.properties文件相比,规则文件的语法似乎不仅仅是一行程序 将这些规则放入规则引擎是否可以使代码/应用程序在不需要重新启动应用程序服务器的情况下工作 3a。如果没有,我们如何才能做到呢 规则引擎并不总是答案。然而,从理论上讲,它们提供了这样一个

我是规则引擎的新手,如果这个问题很基本,请耐心听我说。规则引擎的所有教程都说,您可以将业务逻辑移到代码之外,由BAs/最终用户更新,而不是将其放在Java代码中

我有以下问题

  • 但是为什么我们不能编写代码从属性文件中读取值并执行相同的操作呢

  • 此外,与.properties文件相比,规则文件的语法似乎不仅仅是一行程序

  • 将这些规则放入规则引擎是否可以使代码/应用程序在不需要重新启动应用程序服务器的情况下工作

    3a。如果没有,我们如何才能做到呢


  • 规则引擎并不总是答案。然而,从理论上讲,它们提供了这样一个优势:引擎可以对简单的规则表达式执行复杂的处理并返回结果。其他优点是规则的可见性和代码的更少

    回答你的问题

  • 你可以。在简单的情况下,使用属性文件是有意义的

  • 规则需要足够复杂,以涵盖其验证的业务问题。好的规则引擎使用可读的语法,即使它很复杂

  • 理论上,规则服务器可以独立于应用服务器运行。在大公司,这是正常的。规则服务器可以允许在不重新启动的情况下进行更新,也可以在不影响应用服务器的情况下重新启动(如果有多个实例,则会产生涟漪)


  • 规则引擎并不总是答案。然而,从理论上讲,它们提供了这样一个优势:引擎可以对简单的规则表达式执行复杂的处理并返回结果。其他优点是规则的可见性和代码的更少

    回答你的问题

  • 你可以。在简单的情况下,使用属性文件是有意义的

  • 规则需要足够复杂,以涵盖其验证的业务问题。好的规则引擎使用可读的语法,即使它很复杂

  • 理论上,规则服务器可以独立于应用服务器运行。在大公司,这是正常的。规则服务器可以允许在不重新启动的情况下进行更新,也可以在不影响应用服务器的情况下重新启动(如果有多个实例,则会产生涟漪)

  • 当公司的业务用户希望设置某些规则并基于规则集的执行结果/结果决策驱动应用程序时,规则引擎就出现了。这类公司的一个例子可能是律师事务所或保险公司,律师制定规则来推动保险报价计算&规则在一段时间内会发生变化。属性文件是业务用户可能不擅长进行更改的开发人员区域。使用单独的规则引擎可以跟踪规则,并使业务用户和开发人员能够协同工作,无缝地自动化业务,这对于属性文件来说可能很困难
  • 规则文件语法是将业务规则(口头)转换为可执行的编码指令的方法。这就是语法进入画面的地方。这样,规则引擎为业务实体及其关系提供了数据抽象
  • 与规则引擎的集成可以通过某些代理或web服务或其他方式完成,基于此,服务器应用程序需要规则客户端JAR来进行调用。所以,如果规则客户机jar更新了,部署和服务器如何接收更改/热部署的问题就解决了
  • 当公司的业务用户希望设置某些规则并基于规则集的执行结果/结果决策驱动应用程序时,规则引擎就出现了。这类公司的一个例子可能是律师事务所或保险公司,律师制定规则来推动保险报价计算&规则在一段时间内会发生变化。属性文件是业务用户可能不擅长进行更改的开发人员区域。使用单独的规则引擎可以跟踪规则,并使业务用户和开发人员能够协同工作,无缝地自动化业务,这对于属性文件来说可能很困难
  • 规则文件语法是将业务规则(口头)转换为可执行的编码指令的方法。这就是语法进入画面的地方。这样,规则引擎为业务实体及其关系提供了数据抽象
  • 与规则引擎的集成可以通过某些代理或web服务或其他方式完成,基于此,服务器应用程序需要规则客户端JAR来进行调用。所以,如果规则客户机jar更新了,部署和服务器如何接收更改/热部署的问题就解决了

  • 在过去几天里,我一直在读一些书,我认为(这是IMHO),允许使用简单的电子表格更新业务规则的能力,使规则引擎比属性文件更具优势。我可以使用多个属性和修改规则的说明(作为每个属性下的注释),使属性文件尽可能具有高度可配置性

    但是,在业务用户能够直接配置应用程序以基于电子表格中的“决策表”应用值的场景中,该解决方案将更可取


    如果任何其他(初露头角的)开发人员在为规则引擎的需要寻找理由时,都相信这个答案,请竖起大拇指

    在过去几天里,我一直在阅读一些资料,我认为(这是IMHO),允许使用简单的电子表格更新业务规则的能力,使规则引擎比属性文件更具优势。我可以使用多个属性和修改规则的说明(作为每个属性下的注释),使属性文件尽可能具有高度可配置性

    但在业务用户能够直接配置应用程序以基于