业务规则用户的Java应用程序

时间:2011-02-19 04:51:54

标签: java database validation

说明可能听起来像是一堆字,所以这里有更详细的解释。我有一个映射到数据库表的User对象。 我希望用户担任不同的角色。将会有很多 - 从技术上讲它们将是同一个表中的相同用户,但对他们来说将应用不同的角色。假设角色A中的用户必须根据需要有两个字段,并且必须对密码的长度和内容以及密码的时间到期等有一定的限制。

虽然我可以对这些规则进行核心处理,但我很有兴趣发现还有其他方法可以定义规则,可以存储在数据库中,因此加载/应用更容易,主要想法 - 更改和更新它们 - - 没有重新部署代码库。

从技术上讲,最愚蠢和直接的解决方案是在db中实现类,序列化,存储,然后加载,反序列化,调用将执行规则的方法。问题在于对规则集的更改(读取规则类的“接口”),通常解决方案听起来像是黑客攻击。

还有其他吗?任何框架?其他方法?

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

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

2 个答案:

答案 0 :(得分:1)

JRuleengine我听说很好,有时候我打算用它来进行类似的应用。

还有许多其他规则引擎

答案 1 :(得分:0)

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