为什么 Sling Configuration 有两种不同的格式

Why Sling Configuration has two different formats

在 Sling 中,可以通过 sling:osgiConfig 节点和 nt:file 节点部署配置具有配置值。
当我在通过 sling:osgiConfig 节点部署的某些配置中对 Felix 控制台进行一些更改时,它会转换为 nt:file 格式。

为什么Sling中的配置有这两种不同的格式。两者之间有什么显着差异吗?

当您在 felix 控制台中进行更改时,

@Shashi sling:osgiConfig 更改为 nt:file 是预期的行为。当您尝试从 java class 读取配置值时,这不会导致任何问题。当它更改为 nt:file 时,您将无法通过 crxde 编辑 运行 模式配置,因为它将数据存储为二进制内容。

但是有一种方法可以禁用此行为,您必须在 /system/console/configMgr/org.apache.sling.installer.provider.jcr.impl.JcrInstaller 处取消选中 "Enable Write Back",如 thread.[=12 中所述=]

OSGi 配置 best practices

我想说这主要是出于历史原因,在某些情况下,将配置作为分层资源 (sling:OsgiConfig) 提供更方便,如果配置来自文件系统,例如,文件更方便。