123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package com.nuliji.tools.cache;
- import org.springframework.cache.CacheManager;
- import org.springframework.cache.jcache.JCacheCacheManager;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Primary;
- import org.springframework.data.redis.cache.RedisCacheConfiguration;
- import org.springframework.data.redis.cache.RedisCacheManager;
- import org.springframework.data.redis.cache.RedisCacheWriter;
- import org.springframework.data.redis.connection.RedisConnectionFactory;
- import javax.cache.Caching;
- import javax.cache.spi.CachingProvider;
- import java.net.URISyntaxException;
- import java.time.Duration;
- @Configuration
- public class CacheConfig{
- @Bean("redisCacheManager")
- public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {
- //设置数据存入 redis 的序列化方式
- RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
- .entryTtl(Duration.ofHours(1)); // 设置缓存有效期一小时
- return RedisCacheManager
- .builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
- .cacheDefaults(redisCacheConfiguration).build();
- }
- @Bean("jCacheCacheManager")
- public JCacheCacheManager jCacheCacheManager() throws URISyntaxException {
- CachingProvider provider = Caching.getCachingProvider();
- JCacheCacheManager jCacheCacheManager = new JCacheCacheManager();
- jCacheCacheManager.setCacheManager(provider.getCacheManager());
- return jCacheCacheManager;
- }
- @Bean("cacheManager")
- @Primary
- public CacheManager initMixCacheManager(RedisCacheManager redisCacheManager, JCacheCacheManager ehCacheManager) {
- AppCacheManager cacheManager = new AppCacheManager();
- cacheManager.setRedisCacheManager(redisCacheManager);
- cacheManager.setEhCacheCacheManager(ehCacheManager);
- return cacheManager;
- }
- }
|