2016-10-05 38 views
1

是否可以在ehcache.xml中注入一些屬性?如何在ehcache配置文件中注入屬性?

例如,我有不同的屬性文件,每個屬於一個環境:

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上投遞郵件。

相關問題