描述可能听起来只是一堆文字,所以这里有更详细的解释。我有一个映射到数据库表的用户对象。 我希望用户扮演不同的角色。将会有很多这样的用户 - 从技术上讲,他们将是同一个表中的相同用户,但对他们将应用不同的角色。假设角色A的用户需要有两个字段,并且对密码的长度和内容以及密码的过期时间等有一定的限制。
虽然我可以硬核这些规则,但我非常有兴趣发现还有另一种方法来定义规则,并且可以存储在数据库中,以便更容易加载/应用以及主要思想 - 更改和更新它们 - - 无需重新部署代码库。
从技术上讲,最愚蠢和直接的解决方案是实现类,序列化,存储在数据库中,然后加载,反序列化,调用将执行规则的方法。问题在于规则集的更改(阅读规则类的“接口(interface)”),并且通常的解决方案听起来像是一个黑客。
还有别的吗?有什么框架吗?其他方法?
更新:可能不清楚。比如说,我有 User.java 类 我需要定义不同的规则说: 1. 是否需要验证密码长度,应该是多少? 2.我们是否需要要求一些属性? 3. 我们是否需要跟踪该用户的登录尝试? 4. 如果我们进行跟踪,允许多少次登录尝试? 5. 密码会过期吗? 6. 如果我们这样做,那么需要多少天?或几个月?或几周? 7.... 等等等等。 所以问题是。 - 如何定义这些规则并在用户对象上进行操作而不修改和重新部署代码库? - 我如何存储这些规则集?
Drools、jBPM 等似乎不适合该任务。但任何建议都会有所帮助!
最佳答案
JRuleengine我听说很好,不久前我计划将它用于类似的应用程序。
不过还有许多其他规则引擎。
关于java - 用户的业务规则 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5048928/