簡體   English   中英

AEM Sling 資源解析器映射方法

[英]AEM Sling Resource Resolver Mapping Methods

一段時間以來,我一直在 Internet 上尋找有關配置Sling Resource Resolver映射的更多信息。 根據我在網上的發現和我的經驗,目前有兩種方法可以在 AEM 中實現這一點。

  1. 通過org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl OSGi 屬性resource.resolver.mapping
  2. 通過org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl OSGI 屬性resource.resolver.map.location指定的資源

關於資源解析映射的 Sling 文檔和關於資源映射的 AEM 文檔似乎都建議使用利用屬性resource.resolver.map.location的方法 (2) 是推薦的方法,因為它是唯一的方法由文檔解釋。

我很想澄清這一點並更好地理解這個主題。 我認為關於這個主題的大多數在線資源都缺乏解釋這兩種方法的差異以及使用一種方法與另一種方法的好處的深度。 非常歡迎有關該主題的更詳細的見解、解釋和實用插圖。

謝謝

我也無法給出答案。 但是,如果您查看MapEntries#doUpdateConfiguration (第 428 行)中的代碼,您會發現以下條目最終合並到同一個內部查找映射中。 所以技術上沒有區別。

  • resource.resolver.virtual
  • resource.resolver.mapping
  • resource.resolver.map.location

查看代碼: https : //github.com/apache/sling-org-apache-sling-resourceresolver/blob/master/src/main/java/org/apache/sling/resourceresolver/impl/mapping/MapEntries.java


我的理解

根據我的理解,至少從第 5 天開始,推薦的方法是使用resource.resolver.map.location 這是最靈活的方式。 由於歷史原因,其他人可能仍在那里。


大型多品牌/多團隊項目

/etc/map另一個很好的理由是,具有多個團隊和品牌的大型項目必須避免全局 OSGi 配置(考慮像聯合利華這樣的東西)。 因此,許多其他 OSGi 配置也有另一種配置方式:

  • 通過配置工廠(Sling Service User Mapper / Sling Service User Mapper Amendment)
  • 通過每個服務配置(Sling 身份驗證服務中的 sling.auth.requirements)
  • 或通過全局內容結構(您的示例與 /etc/maps)

在這種情況下,總是喜歡變體,它允許多個團隊獨立提供他們的部分配置。 在您的情況下,團隊可以在/etc/map下提供不同的子樹


PS:我什至不確定,如果正則表達式在 OSGi 配置中工作。 這也適用於/etc/maps

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM