CacheConfig.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.nuliji.tools.cache;
  2. import org.springframework.cache.CacheManager;
  3. import org.springframework.cache.jcache.JCacheCacheManager;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.context.annotation.Primary;
  7. import org.springframework.data.redis.cache.RedisCacheConfiguration;
  8. import org.springframework.data.redis.cache.RedisCacheManager;
  9. import org.springframework.data.redis.cache.RedisCacheWriter;
  10. import org.springframework.data.redis.connection.RedisConnectionFactory;
  11. import javax.cache.Caching;
  12. import javax.cache.spi.CachingProvider;
  13. import java.net.URISyntaxException;
  14. import java.time.Duration;
  15. @Configuration
  16. public class CacheConfig{
  17. @Bean("redisCacheManager")
  18. public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {
  19. //设置数据存入 redis 的序列化方式
  20. RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
  21. .entryTtl(Duration.ofHours(1)); // 设置缓存有效期一小时
  22. return RedisCacheManager
  23. .builder(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory))
  24. .cacheDefaults(redisCacheConfiguration).build();
  25. }
  26. @Bean("jCacheCacheManager")
  27. public JCacheCacheManager jCacheCacheManager() throws URISyntaxException {
  28. CachingProvider provider = Caching.getCachingProvider();
  29. JCacheCacheManager jCacheCacheManager = new JCacheCacheManager();
  30. jCacheCacheManager.setCacheManager(provider.getCacheManager());
  31. return jCacheCacheManager;
  32. }
  33. @Bean("cacheManager")
  34. @Primary
  35. public CacheManager initMixCacheManager(RedisCacheManager redisCacheManager, JCacheCacheManager ehCacheManager) {
  36. AppCacheManager cacheManager = new AppCacheManager();
  37. cacheManager.setRedisCacheManager(redisCacheManager);
  38. cacheManager.setEhCacheCacheManager(ehCacheManager);
  39. return cacheManager;
  40. }
  41. }