我想知道在 Hybris 属性文件中是否有引用环境变量的方法。
例如,在 local.properties 中:
my.property = ${MY_ENVIRONMENT_VARIABLE}
我的搜索得出结论,这在 Spring 中是可能的,但在 Hybris 中似乎不起作用。
任何想法将不胜感激。
不,这是不可能的。
实际上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被注射。
| 归档时间: |
|
| 查看次数: |
3853 次 |
| 最近记录: |