繁体   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