我有一个场景,UI 中的字段应根据用户角色显示。例如,如果用户来自角色“A”,则 UI 将显示 5 个字段,但如果用户来自角色“B”,则将显示 10 个字段。 为了完成上述设计,我正在考虑使用Drools规则引擎。用户登录应用程序后,前端调用API“/user/fields?Id=”。 API 首先从预先填充的数据库表中获取字段名称和用户角色映射的集合,并将所有映射和登录用户角色发送到 Drools。 Drools 将返回与用户角色匹配的字段名称列表,然后将其发送到 Frontend。前端采用 Angular,将根据列表显示或隐藏。
我使用 Java、Spring Boot 作为 API,使用 Angular 作为前端。如果有更好的方法或更有效的方法,请告诉我。
Drools 和其他业务规则引擎的设计最擅长处理复杂的决策树。对于非常简单的场景和应用程序,用 Java 实现的简单比较(例如 if/else 树)往往会表现不佳。
您所描述的更多地属于事物“简单”的一面。提议的用例中没有任何内容表明您需要业务规则引擎或从业务规则引擎中受益。 Java“if”语句可能会性能更高,并且需要更少的资源和开销。