Parcourir la source

update spring-cache 整合 redisson

疯狂的狮子li il y a 3 ans
Parent
commit
57df2690da

+ 10 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/RedisLockController.java

@@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.redis.RedisLockManager;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -62,4 +63,13 @@ public class RedisLockController {
 		}
 		return AjaxResult.success();
 	}
+
+	/**
+	 * 测试spring-cache注解
+	 */
+	@Cacheable(value = "test", key = "#key")
+	@GetMapping("/testCache")
+	public AjaxResult<String> testCache(String key) {
+		return AjaxResult.success("操作成功", key);
+	}
 }

+ 16 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java

@@ -6,15 +6,20 @@ import org.redisson.Redisson;
 import org.redisson.api.RedissonClient;
 import org.redisson.codec.JsonJacksonCodec;
 import org.redisson.config.Config;
+import org.redisson.spring.cache.CacheConfig;
+import org.redisson.spring.cache.RedissonSpringCacheManager;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
+import org.springframework.cache.CacheManager;
 import org.springframework.cache.annotation.CachingConfigurerSupport;
 import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * redis配置
@@ -67,4 +72,15 @@ public class RedisConfig extends CachingConfigurerSupport {
 			.setDnsMonitoringInterval(singleServerConfig.getDnsMonitoringInterval());
 		return Redisson.create(config);
 	}
+
+	/**
+	 * 整合spring-cache
+	 */
+	@Bean
+	public CacheManager cacheManager(RedissonClient redissonClient) {
+		Map<String, CacheConfig> config = new HashMap<>();
+		config.put("redissonCacheMap", new CacheConfig(30*60*1000, 10*60*1000));
+		return new RedissonSpringCacheManager(redissonClient, config, JsonJacksonCodec.INSTANCE);
+	}
+
 }