如何在 ehcache 配置文件中注入属性?
Posted
技术标签:
【中文标题】如何在 ehcache 配置文件中注入属性?【英文标题】:How to inject properties in ehcache configuration file? 【发布时间】:2017-02-13 18:15:57 【问题描述】:是否可以在 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
在上面显示的每个属性文件中都有定义,并且根据我的应用程序运行的环境具有不同的值。
【问题讨论】:
【参考方案1】:简短的回答是否定的,目前所有现有的 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 群组中发送邮件。
【讨论】:
以上是关于如何在 ehcache 配置文件中注入属性?的主要内容,如果未能解决你的问题,请参考以下文章
关于ehcache配置中timeToLiveSeconds和timeToIdleSeconds的区别
Spring 3.2 - 如何将 XML 中配置的 FlatFileItemWriter 注入 java 类中的参数化属性