Spring Cache整合Apache ignite
学校的一个小项目,在内卷的大环境下必须得整点花活。
Spring Cache大伙应该都比较熟悉,这里主要说一下怎么把ignite整合进去做cache的provider
首先引入相关依赖(注意,本机上需要安装apache ignite并配置环境变量,注意其版本应与此依赖中的版本对应),
其中2.8.1版本的ignite需要手动切换一下h2版本号(之前有一篇文章提过)
<properties>
<ignite.version>2.8.1</ignite.version>
<h2.version>1.4.197</h2.version>
</properties>
<!-- spring-cache with apache ignite core -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-core</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-spring</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-indexing</artifactId>
<version>${ignite.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-spring-data_2.2</artifactId>
<version>${ignite.version}</version>
</dependency>
配置我依然采用代码里配置,大概如下(具体属性俺也不是很清楚,毕竟英语竞赛连个奖都没混到,自己去官网看文档吧):
package com.iamwxc.bookstore.configuration;
import org.apache.ignite.cache.spring.SpringCacheManager;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.ArrayList;
import java.util.List;
/**
* @author https://github.com/anlowee
*/
@Configuration
@EnableCaching
public class IgniteCacheConfiguration {
@Bean
public CacheManager cacheManager() {
SpringCacheManager cacheManager = new SpringCacheManager();
cacheManager.setConfiguration(igniteConfiguration());
return cacheManager;
}
@Bean
public IgniteConfiguration igniteConfiguration() {
IgniteConfiguration igniteConfiguration = new IgniteConfiguration();
igniteConfiguration.setClientMode(false);
igniteConfiguration.setCacheConfiguration(cacheConfiguration());
return igniteConfiguration;
}
@Bean
public CacheConfiguration[] cacheConfiguration() {
List<CacheConfiguration> cacheConfigurations = new ArrayList<>();
cacheConfigurations.add(new CacheConfiguration("user"));
cacheConfigurations.add(new CacheConfiguration("bookLikeAndWant"));
return cacheConfigurations.toArray(new CacheConfiguration[cacheConfigurations.size()]);
}
}
然后就可以在工程里随意操作了(一直很喜欢spring这种load-core的模式)

浙公网安备 33010602011771号