gpt4 book ai didi

java - 值没有被填充到 gemfire 缓存中

转载 作者:行者123 更新时间:2023-12-01 14:59:13 30 4
gpt4 key购买 nike

我有 2 个 xml 配置文件,如下所示

app-context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:gfe="http://www.springframework.org/schema/gemfire" xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">


<context:component-scan
base-package="com.mycompany.data.testcache" />
<context:annotation-config />

<import resource="test-cache.xml" />

<bean id="testCache" class="org.springframework.data.gemfire.GemfireTemplate">
<property name="region" ref="region1" />
</bean>

</beans>

test-cache.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gfe="http://www.springframework.org/schema/gemfire"
xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan
base-package="com.mycompany.data.testcache" />
<context:annotation-config />

<util:properties id="props" location="classpath:test-cache.properties">
<prop key="log-level">info</prop>
</util:properties>

<gfe:cache id="gemfire-cache" properties-ref="props" />

<gfe:local-region id="region1" cache-ref="gemfire-cache">
<gfe:cache-listener ref="listener" />
</gfe:local-region>

<bean id="listener"
class="com.mycompany.data.TestLoggingCacheListener" />
</beans>

我有一个名为TestCache.java

的测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:app-context.xml" })
public class TestCache {

@Autowired
GemfireTemplate testCache;

@Test
public void testgetSomeValues() {

HashMap<String, String> map1 = retrieveSomeValues();

HashMap<String, String> map2 = retrieveSomeValues();

assertEquals(Map1, Map2);
}

@Cacheable(value = "testCache")
public HashMap<String, String> retrieveSomeValues() {

HashMap<String, String> obj = new HashMap<String, String>();
obj.put("600", "Auto");
obj.put("601", "Life");

return obj;
}

}

但我看到该区域实际上没有缓存任何内容。对于两个对retrieveSomeValues()方法的调用,该方法实际上是在执行,而不是从缓存中检索值。

我能知道上面的测试类出了什么问题吗?我可以知道如何使用 @Cacheable 来缓存able retriveSomeValues() 方法的值吗?

最佳答案

您需要Spring框架的缓存支持才能使用@Cacheable。有一个 Spring GemFire 快速入门示例,展示了如何使用带有 @Cacheable 注释的 GemFire:

https://github.com/SpringSource/spring-gemfire-examples/tree/master/quickstart/spring-cache

您将在那里找到所需的一切:应用程序的 xml 配置、缓存、gemfire 以及使用注释的代码。

关于java - 值没有被填充到 gemfire 缓存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13921971/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com