【问题标题】:In AEM how can I get project environment into my sling model在 AEM 中,如何将项目环境放入我的 sling 模型中
【发布时间】:2020-10-15 17:09:07
【问题描述】:

我需要在我的 sling 模型中使用环境(dev|prod 等,而不是运行模式,例如 author|publish)。如何将其注入到我的核心模型中?

有这方面的服务吗?

【问题讨论】:

    标签: java osgi aem


    【解决方案1】:

    dev|prod 等,而不是运行模式,例如 author|publish

    authorpublish 属于固定 运行模式,但运行模式通常也可用于区分devprod(或类似环境)。

    通常,当需要区分 AEM 环境时,例如dev vs prod,它通过custom run modes实现的。虽然 AEM 即云服务对您可以自定义的数量设置了一些限制,但您提到的案例仍然涵盖 OOTB。除其他外,它can be used to manage environment-specific OSGi config

    本地/托管部署为您提供更大的灵活性。为此,我一直使用自定义的运行模式。

    需要注意的一点是,您需要以编程方式检查 Sling 模型中的运行模式,这确实引起了人们的注意。我不确定你在实现什么,但如果某个功能依赖于环境,我宁愿通过分配给给定运行模式的替代 OSGi 配置来处理它。我认为在需要时将另一个配置添加为 sling:OsgiConfig 节点通常更容易,而不是在仅识别一组预定环境的 Java 类中调整条件逻辑。

    如果您有一组这样的运行模式,您可以将SlingSettingsService 注入您的模型并以这种方式读取运行模式。或者您可以编写一个 OSGi 服务来封装您需要的任何逻辑。这样的服务将以与给定环境相关的配置启动,您可以将其直接注入到您的 Sling 模型中,知道它返回的值是您需要的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-13
      • 2018-06-13
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      相关资源
      最近更新 更多