2011-02-19 79 views
0

说明听起来像只是一堆词,所以这里是一个更详细的解释。我有一个映射到数据库表的User对象。 我希望用户处于不同的角色。会有一堆 - 他们在技术上将是同一个表中的相同用户,但是他们将应用不同的角色。假设角色A中的用户必须有两个字段,并且必须对其密码的长度和内容以及密码的时间到期等有一定的限制。业务规则用户的Java应用程序

虽然我可以硬核那些我非常感兴趣的规则可以用来定义规则,并且可以存储在数据库中,这样可以更容易地加载/应用主要想法 - 更改和更新它们 - 没有重新部署代码库。

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

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

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

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

回答

1

​​是好的我听说过,有时候我打算将它用于类似的应用程序。

虽然有很多其他规则引擎

0

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