使用 Mendix Business Modeler 构建 Web 应用程序与使用 Java/Spring/JSF 等技术开发 Web 应用程序有着根本的不同。但是,为了这个问题,我将尝试比较两者:
在基于 Java/Spring 的应用程序中,我可以将我的应用程序与 3rd 方产品 Ehcache 集成以在方法级别缓存数据。例如,我可以将 ehcache 配置为存储给定方法的返回值(具有特定的生存时间)。每当调用此方法时,ecache 将自动检查该方法之前是否已使用相同的参数调用过,以及缓存中是否有存储的返回值。如果是这样,则该方法永远不会实际执行,而是立即返回缓存的方法返回值。
我想在 Mendix 中拥有相同的功能,但在这种情况下,我将缓存 Microflow 返回值。此外,我不想被迫在各处添加操作,明确告诉 Microflow 检查缓存。我想在一个集中的地方注册我的微流进行缓存,或者简单地标记每个微流以进行缓存。换句话说,这个问题与 Mendix 中的面向方面编程 (AOP) 的概念和缓存一样多:有没有办法将挂钩连接到 Microflow 调用中,以便我可以应用执行前和执行后操作?在我看来,AOP 在 Java 中占有一席之地的原因与 Mendix 中存在的原因相同。