如何只调用一次吊索模型

how to call sling model only once

假设我有组件 A 和组件 B。 在组件 A 中,我正在编写 html 文件

   data-sly-use.head="com.Mymodel"

现在在组件 B 中我也需要使用相同的 class,所以在 html 文件中我写了

   data-sly-use.head="com.Mymodel"

组件 A 和组件 B 可以在页面中可用,也可以同时不可用。我想要的是,如果页面中同时存在组件 A 和 B,那么我不想将 Sling 模型 (com.Mymodel) 初始化两次。我只想初始化一次。怎么做?

看看 Sling 模型缓存。这正是您想要的,只要它可以从资源中改编。

https://sling.apache.org/documentation/bundles/models.html#caching

您只需在模型注释中指定 cache=true

@Model(adaptable = SlingHttpServletRequest.class, cache = true)
public class ModelClass {
   ...
}