Spring Cache整合Apache ignite
阿新 • • 發佈:2020-11-07
學校的一個小專案,在內卷的大環境下必須得整點花活。
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的模式)