Hybris local.properties 中的环境变量

roh*_*ach 5 hybris

我想知道在 Hybris 属性文件中是否有引用环境变量的方法。

例如,在 local.properties 中: my.property = ${MY_ENVIRONMENT_VARIABLE}

我的搜索得出结论,这在 Spring 中是可能的,但在 Hybris 中似乎不起作用。

任何想法将不胜感激。

ala*_*inm 0

不,这是不可能的。

实际上hybris使用org.apache.commons.configuration包。在文档中,您会发现可以使用环境变量。

user.file = ${sys:user.home}/settings.xml
action.key = ${const:java.awt.event.KeyEvent.VK_CANCEL}
java.home = ${env:JAVA_HOME}
Run Code Online (Sandbox Code Playgroud)

不幸的是 hybris 做了一些我无法解释的事情,他们覆盖了默认实现并删除了所有插值功能。

如果我们进一步分析问题,使用的配置类称为HybrisConfiguration。此类扩展AbstractConfiguration自 Apache Commons Configuration。该getProperty方法使用另一个名为 的接口ConfigIntf。实现可以在类中找到AbstractConfig。everygetString getInteger等...方法被重写。

例如,对于 String,该方法不会调用interpolate方法,但您会发现一个非常简单的...

StringUtils.isEmpty(value) ? def : value;
Run Code Online (Sandbox Code Playgroud)

因此,如果您想使用 Apache API 的所有功能,那么请尝试替换 hybris 实现...但是,我认为在不修改平台的情况下做到这一点并不那么容易,因为我没有看到任何可以的 bean被注射。