在AEM中,我如何将项目环境纳入我的吊带模型中



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

这个有服务吗?

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

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

通常,当AEM环境需要区分时,例如dev与prod,是通过自定义运行模式实现的。虽然AEM作为云服务对您可以定制的数量有一些限制,但您提到的案例仍然涵盖OOTB。除其他外,它还可以用于管理特定于环境的OSGi配置。

内部部署/托管部署为您提供了更大的灵活性。出于这种目的,我一直使用自定义的运行模式。

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

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

最新更新