[英]Infinispan cache put is not working in loop
I am using embedded cachemanager and i am trying to put entries in cache in for loop but when the next request is fired i am seeing cache empty.我正在使用嵌入式缓存管理器,并且我正在尝试将条目放入 for 循环中的缓存中,但是当下一个请求被触发时,我看到缓存为空。 Below is my implementation -
下面是我的实现 -
EmbeddedCacheManager manager=null;
{
try {
manager = new DefaultCacheManager("src/main/resources/infinispan.xml");
} catch (IOException e) {
e.printStackTrace();
}
}
Cache cache=manager.getCache();
for (JsonElement jsonElement : jsonArray)
{
id=jsonElement.getAsJsonObject().get("_id").getAsString();
id1= id.replace("-","");
JsonObject source = jsonElement.getAsJsonObject().getAsJsonObject("_src");
String jsonString = source.toString();
Dummy dummy = new Gson().fromJson(jsonString, Dummy.class);
if(cache.get(id1)!=null){
retVal.add((Dummy) cache.get(id1));
System.out.println("This is cached !");
}else {
cache.put(id1,dummy);
retVal.add(dummy);
System.out.println("This is not cached");
}
}
Add infinispan-bom to your pom.xml file before the starter dependencies, as follows:将 infinispan-bom 添加到您的 pom.xml 文件中,在启动器依赖项之前,如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-bom</artifactId>
<version>${version.infinispan}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${version.spring.boot}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-spring-boot-starter</artifactId>
<version>${version.infinispan.starter}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-spring-boot-starter-embedded</artifactId>
<version>${version.infinispan.starter}</version>
</dependency>
your bean should have你的豆子应该有
private final EmbeddedCacheManager cacheManager;
@Autowired
public YourBean(EmbeddedCacheManager cacheManager) {
this.cacheManager = cacheManager;
}
if you need to customize EmbeddedCacheManager
do如果你需要自定义
EmbeddedCacheManager
做
@Bean
public InfinispanCacheConfigurer cacheConfigurer() {
return manager -> {
final Configuration ispnConfig = new ConfigurationBuilder()
.clustering()
.cacheMode(CacheMode.LOCAL)
.build();
manager.defineConfiguration("local-sync-config", ispnConfig);
};
}
You will find good examples at https://infinispan.org/infinispan-spring-boot/master/spring_boot_starter.html你会在https://infinispan.org/infinispan-spring-boot/master/spring_boot_starter.html找到很好的例子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.