如何在 ehcache 配置文件中注入属性?

How to inject properties in ehcache configuration file?

是否可以在 ehcache.xml 中注入一些属性?

例如我有不同的 属性 个文件,每个文件都属于一个环境:

my_project_name.local.properties

my_project_name.test.properties

my_project_name.int.properties

my_project_name.prod.properties

它们每个都包含不同环境的属性。

我想在 ehcache.xml 中注入 属性 maxByteslocalHeap,如下所示:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="ehcache.xsd"
     updateCheck="false" monitoring="autodetect"
     maxBytesLocalHeap="${my_project.cache.maxBytesLocalHeap}">
     .....
</ehcache>

my_project.cache.maxBytesLocalHeap在上面显示的每个属性文件中定义,根据我的应用所在的环境有不同的值运行.

简短的回答是否定的,目前所有现有的 Ehcache 版本(最新的 2.10.2 和 3.1.3)。

您问题的详细答案取决于 Ehcache 版本:

  • Ehcache 2.6.x到2.10.x只支持属性替换CacheManager级别的磁盘路径配置。使用的模式是经典的 ${my.prop}.
  • Ehcache 3.0.0 到 3.1.2 不支持任何 属性 替换。
  • Ehcache 3.1.3 及更高版本支持 属性 在所有接受文本的模式位置进行替换。同样,要使用的模式是经典的 ${my.prop}。请注意,这意味着对于您的示例,您将无法替换尺寸信息,因为 XSD 强制该值是一个严格的正数。

可以取消此处列出的最新限制 - 开发团队只是不确定是否值得付出努力。因此,如果这是您认为 Ehcache 应该提供的内容,请在 ehcache-users google 组中发送邮件。