AEM - 配置如何工作

时间:2016-02-23 19:27:42

标签: aem sling

我在aem中看到过配置有两个部分,第一个是静态的最终字符串,其名称我将访问配置属性,另一个是实例变量,其值将从属性Dictionary对象中获取。

例如在Sling自己的代码中,

public class ResourceResolverFactoryActivator implements Runnable {
...
@Property(
        boolValue = {true},
        label = "Namespace Mangling",
        description = ".."
    )
private static final String PROP_MANGLE_NAMESPACES = "resource.resolver.manglenamespaces";
... // other code in between

private boolean mangleNamespacePrefixes;

protected void activate(ComponentContext componentContext){
...
this.mangleNamespacePrefixes = PropertiesUtil.toBoolean(properties.get("resource.resolver.manglenamespaces"), false);
...
}  

此处final String PROP_MANGLE_NAMESPACES和实例boolean mangleNamespacePrefixes的意义何在?为什么两个不同的变量只代表一个@Property

1 个答案:

答案 0 :(得分:2)

PROP_MANGLE_NAMESPACES用于存储属性名称(felix将使用该名称来保留属性)。 mangleNamespacePrefixes用于存储该属性的值。

如果您愿意在所需的任何地方使用mangleNamespacePrefixes,则无需定义PropertiesUtil.toBoolean(properties.get(PROP_MANGLE_NAMESPACES), false)