【问题标题】:Business rules Java app for User用户的业务规则 Java 应用程序
【发布时间】:2011-02-19 04:51:54
【问题描述】:

描述可能听起来只是一堆单词,所以这里有一个更详细的解释。我有一个映射到数据库表的用户对象。 我希望用户扮演不同的角色。会有很多这样的——从技术上讲,他们将是同一张表中的相同用户,但对他们来说将应用不同的角色。假设角色A的用户必须有两个字段,并且必须对其密码的长度和内容以及密码的到期时间等有一定的限制。

虽然我可以硬核这些规则,但我很想知道还有另一种定义规则的方法,并且可能存储在数据库中,因此更容易加载/应用和主要思想 - 更改和更新它们 - - 无需重新部署代码库。

技术上最愚蠢和直接的解决方案是实现类,序列化,存储在数据库中,然后加载,反序列化,调用将执行规则的方法。问题在于规则集的更改(阅读规则类的“接口”),并且通常的解决方案听起来像是一个 hack。

还有什么?有什么框架吗?其他方法?

更新:可能不清楚。说,我有类 User.java 我需要定义不同的规则说: 1.我们需要验证密码的长度,应该是什么? 2.我们需要一些属性吗? 3. 我们是否需要跟踪该用户的登录尝试? 4. 如果我们做跟踪,允许多少次登录尝试? 5. 我们是否会过期密码? 6. 如果我们这样做,那么在几天内?还是几个月?还是几周? 7. ... 等等等等。 所以问题是。 - 我如何定义这些规则并对用户对象进行操作没有修改和重新部署代码库? - 我如何存储这些规则集?

Drools、jBPM 等似乎不适合该任务。但任何建议都会有所帮助!

【问题讨论】:

    标签: java database validation


    【解决方案1】:

    JRuleengine 听说不错,以前我打算用它来做类似的应用。

    还有很多其他的规则引擎

    【讨论】:

      【解决方案2】:

      嗯,有一些很好的规则引擎,包括 jrules,我认为 drools 也很受欢迎。要记住的一件事是规则与其检查的数据之间的关系。毕竟,您可以在 word 文档中拥有规则,但是当它们执行时,他们需要检查数据,这也是选择规则引擎或架构的一个因素。通常它的 if (a > b) then do y。意味着您需要在规则执行中检查 a 和 b。真正的问题是如何将参数放入规则和引擎中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-31
        • 2011-09-19
        • 1970-01-01
        • 1970-01-01
        • 2011-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多