0
我使用的Spring XML bean配置試圖設置咖啡因緩存。 我想有兩個不同的緩存,春天的XML bean配置兩個咖啡因緩存
- 存儲 「ID」
- 存儲 「名」
我試圖做以下,
<bean id="cacheManager" class="org.springframework.cache.caffeine.CaffeineCacheManager">
<property name="cacheNames">
<set>
<value>id</value>
<value>name</value>
</set>
</property>
<property name="cacheSpecification" value="${caffeine.spec}"/>
</bean>
代碼我在哪裏使用它的樣子,
@Cacheable(cacheNames = {"id"})
public String getId(final String key){
System.out.println("no id in cache");
//code
}
@Cacheable(cacheNames = {"name"})
public String getName(final String key){
System.out.println("no name in cache");
//code
}
的getId()
方法在某種程度上可以作爲每caffeine.spec
值這是在我的項目maximumSize=500,expireAfterAccess=5s
。因此,如果我在5秒內調用該方法,則不會打印該消息,如果在5秒內調用該方法,則會調用該方法。但getName
不起作用。它始終打印消息。 任何人都曾試圖設置咖啡因緩存來設置多個緩存。
爲人們尋找以上問題的答案只是注意,看起來像上述配置的實際工作,它必須有一些其他的問題,它並沒有在那個時候對我的工作。
其實,我不能重現你的問題。我已經使用Spring Boot創建了一個演示項目,並且這兩個緩存都可以作爲XML配置的魅力。你確定總是使用相同的關鍵參數調用'getName()'方法嗎? –
@DanielOlszewski有趣的是,它不適合我,所以我繼續添加一個配置bean,並以編程的方式進行。除了上面的問題,我還試圖爲兩個不同的緩存配置不同的ttl。我無法弄清楚如何使用spring bean做到這一點。在代碼中做它更容易。 –