diff --git a/caf-caching/pom.xml b/caf-caching/pom.xml index 358733537e62c52bdc33c30f4abfa4c0104ea67d..e8b0c79400170e34a6ce12a2b3872514dce50817 100644 --- a/caf-caching/pom.xml +++ b/caf-caching/pom.xml @@ -28,10 +28,6 @@ - - io.iec.edp - caf-commons-runtime - io.iec.edp caf-commons-serialization diff --git a/caf-caching/src/main/java/io/iec/edp/caf/caching/cache/redis/RedisCacheKey.java b/caf-caching/src/main/java/io/iec/edp/caf/caching/cache/redis/RedisCacheKey.java index dddb41c7b5abe5ed469aa9b8728a0c309a5b683e..7acdacec36cd24b72dfafc0072b68ffa3d0e8e18 100644 --- a/caf-caching/src/main/java/io/iec/edp/caf/caching/cache/redis/RedisCacheKey.java +++ b/caf-caching/src/main/java/io/iec/edp/caf/caching/cache/redis/RedisCacheKey.java @@ -19,7 +19,6 @@ package io.iec.edp.caf.caching.cache.redis; import io.iec.edp.caf.caching.serializer.KeyStringSerializer; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.util.Assert; -import org.springframework.util.StringUtils; import java.util.Arrays; @@ -106,7 +105,6 @@ public class RedisCacheKey { * @return byte[] */ public byte[] getPrefix() { -// return prefixSerializer.serialize((StringUtils.isEmpty(cacheName) ? cacheName.concat(":") : cacheName.concat(":"))); return prefixSerializer.serialize("{" + cacheName + "}:"); } diff --git a/caf-caching/src/main/java/io/iec/edp/caf/caching/manager/LayeringCacheManager.java b/caf-caching/src/main/java/io/iec/edp/caf/caching/manager/LayeringCacheManager.java index 200ef54f7aaef939597a8d711583b9e8370c5757..3bd88c2119ca60651f81bb1af0307e59a7d79d0a 100644 --- a/caf-caching/src/main/java/io/iec/edp/caf/caching/manager/LayeringCacheManager.java +++ b/caf-caching/src/main/java/io/iec/edp/caf/caching/manager/LayeringCacheManager.java @@ -24,7 +24,6 @@ import io.iec.edp.caf.caching.properties.CacheSetting; import io.iec.edp.caf.caching.properties.JedisPoolConfigProperties; import io.iec.edp.caf.caching.properties.RedisCacheProperties; import io.iec.edp.caf.caching.setting.LayeringCacheSetting; -import io.iec.edp.caf.commons.runtime.CafEnvironment; import org.springframework.util.Assert; /** @@ -34,13 +33,14 @@ import org.springframework.util.Assert; * @date 2020-04-28 */ public class LayeringCacheManager extends AbstractCacheManager { + private RedisCacheProperties settings; private RedisClientManager redisClientManager; - private Boolean enableRedis = null; + private Boolean enableRedis; - public LayeringCacheManager(RedisCacheProperties redisCacheSettings, JedisPoolConfigProperties jedisPoolConfigProperties) { + public LayeringCacheManager(RedisCacheProperties redisCacheSettings, JedisPoolConfigProperties jedisPoolConfigProperties, Boolean enableRedis) { this.settings = redisCacheSettings; - this.enableRedis = CafEnvironment.getEnvironment().getProperty("redis.enabled", Boolean.class, true); + this.enableRedis = enableRedis; if (this.enableRedis) this.redisClientManager = new RedisClientManager(jedisPoolConfigProperties, settings); cacheManagers.add(this); } diff --git a/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/cache/redis/RedisCacheKey.java b/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/cache/redis/RedisCacheKey.java index 6707943514b2254410b7e9d4c9bcc593e090d1ab..0bf1f2734c5c842c7bc9cf61a63e10383f35c1f4 100644 --- a/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/cache/redis/RedisCacheKey.java +++ b/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/cache/redis/RedisCacheKey.java @@ -19,7 +19,6 @@ package io.iec.edp.caf.commons.layeringcache.cache.redis; import io.iec.edp.caf.commons.layeringcache.serializer.KeyStringSerializer; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.util.Assert; -import org.springframework.util.StringUtils; import java.util.Arrays; @@ -107,7 +106,7 @@ public class RedisCacheKey { * @return byte[] */ public byte[] getPrefix() { - return prefixSerializer.serialize((StringUtils.isEmpty(cacheName) ? cacheName.concat(":") : cacheName.concat(":"))); + return prefixSerializer.serialize("{" + cacheName + "}:"); } /** diff --git a/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/manager/AbstractCacheManager.java b/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/manager/AbstractCacheManager.java index e625984a9530f4cb2d24b5cfcdd696d8f10b8ea6..442b9d3a84c33b4c1a46eebcfe6aa2288797512c 100644 --- a/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/manager/AbstractCacheManager.java +++ b/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/manager/AbstractCacheManager.java @@ -16,6 +16,7 @@ package io.iec.edp.caf.commons.layeringcache.manager; +import io.iec.edp.caf.caching.manager.RedisClient; import io.iec.edp.caf.commons.layeringcache.cache.Cache; import io.iec.edp.caf.commons.layeringcache.listener.RedisMessageListener; import io.iec.edp.caf.commons.layeringcache.setting.LayeringCacheSetting; @@ -252,7 +253,7 @@ public abstract class AbstractCacheManager implements CacheManager, Initializing @Override public void destroy() throws Exception { for (RedisClient redisClient : redisClientPool.values()) { - redisClient.container.destroy(); + redisClient.getContainer().destroy(); } BeanFactory.getBean(StatsService.class).shutdownExecutor(); @@ -267,7 +268,7 @@ public abstract class AbstractCacheManager implements CacheManager, Initializing public void start() { this.running = true; for (RedisClient redisClient : redisClientPool.values()) { - redisClient.container.start(); + redisClient.getContainer().start(); } } @@ -275,7 +276,7 @@ public abstract class AbstractCacheManager implements CacheManager, Initializing public void stop() { this.running = false; for (RedisClient redisClient : redisClientPool.values()) { - redisClient.container.stop(); + redisClient.getContainer().stop(); } } @@ -308,13 +309,13 @@ public abstract class AbstractCacheManager implements CacheManager, Initializing } public RedisTemplate getRedisTemplate(String cacheName) { - return this.redisClientPool.get(cacheName) != null ? this.redisClientPool.get(cacheName).redisTemplate : null; + return this.redisClientPool.get(cacheName) != null ? this.redisClientPool.get(cacheName).getRedisTemplate() : null; } public Set> getRedisTemplates() { Set> redisTemplateSet = new HashSet<>(); for (RedisClient redisClient : redisClientPool.values()) { - redisTemplateSet.add(redisClient.redisTemplate); + redisTemplateSet.add(redisClient.getRedisTemplate()); } return redisTemplateSet; diff --git a/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/manager/LayeringCacheManager.java b/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/manager/LayeringCacheManager.java index 885e5c25d2dd8dd02684de9c6919ef010883f599..7ece75aebfab923d85f4b42a329370ff8c020be2 100644 --- a/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/manager/LayeringCacheManager.java +++ b/caf-caching/src/main/java/io/iec/edp/caf/commons/layeringcache/manager/LayeringCacheManager.java @@ -16,15 +16,16 @@ package io.iec.edp.caf.commons.layeringcache.manager; +import io.iec.edp.caf.caching.properties.CacheSetting; +import io.iec.edp.caf.caching.properties.JedisPoolConfigProperties; +import io.iec.edp.caf.caching.properties.RedisCacheProperties; +import io.iec.edp.caf.caching.manager.RedisClient; +import io.iec.edp.caf.caching.manager.RedisClientManager; import io.iec.edp.caf.commons.layeringcache.cache.Cache; import io.iec.edp.caf.commons.layeringcache.cache.LayeringCache; import io.iec.edp.caf.commons.layeringcache.cache.caffeine.CaffeineCache; import io.iec.edp.caf.commons.layeringcache.cache.redis.RedisCache; -import io.iec.edp.caf.commons.layeringcache.properties.CacheSetting; -import io.iec.edp.caf.commons.layeringcache.properties.JedisPoolConfigProperties; -import io.iec.edp.caf.commons.layeringcache.properties.RedisCacheProperties; import io.iec.edp.caf.commons.layeringcache.setting.LayeringCacheSetting; -import io.iec.edp.caf.commons.runtime.CafEnvironment; import org.springframework.util.Assert; /** @@ -35,14 +36,15 @@ import org.springframework.util.Assert; */ @Deprecated //todo 被com.inspur.edp.aif.runtime.adapter.CafServiceManager依赖 -public class LayeringCacheManager extends io.iec.edp.caf.commons.layeringcache.manager.AbstractCacheManager { +public class LayeringCacheManager extends AbstractCacheManager { + private RedisCacheProperties settings; private RedisClientManager redisClientManager; - private Boolean enableRedis = null; + private Boolean enableRedis; - public LayeringCacheManager(RedisCacheProperties redisCacheSettings, JedisPoolConfigProperties jedisPoolConfigProperties) { + public LayeringCacheManager(RedisCacheProperties redisCacheSettings, JedisPoolConfigProperties jedisPoolConfigProperties, Boolean enableRedis) { this.settings = redisCacheSettings; - this.enableRedis = CafEnvironment.getEnvironment().getProperty("redis.enabled", Boolean.class, true); + this.enableRedis = enableRedis; if (this.enableRedis) this.redisClientManager = new RedisClientManager(jedisPoolConfigProperties, settings); cacheManagers.add(this); } @@ -59,9 +61,9 @@ public class LayeringCacheManager extends io.iec.edp.caf.commons.layeringcache.m if (layeringCacheSetting.isUseSecondCache()) { // 创建二级缓存 RedisClient redisClient = getOrDefaultRedisClient(name); - RedisCache redisCache = new RedisCache(name, redisClient.redisTemplate, layeringCacheSetting.getSecondaryCacheSetting(), getStats()); + RedisCache redisCache = new RedisCache(name, redisClient.getRedisTemplate(), layeringCacheSetting.getSecondaryCacheSetting(), getStats()); this.redisClientPool.put(name, redisClient); - return new LayeringCache(redisClient.redisTemplate, caffeineCache, redisCache, super.getStats(), layeringCacheSetting); + return new LayeringCache(redisClient.getRedisTemplate(), caffeineCache, redisCache, super.getStats(), layeringCacheSetting); } else { return new LayeringCache(null, caffeineCache, null, layeringCacheSetting.isUseFirstCache(), layeringCacheSetting.isUseSecondCache(), super.getStats(), name, layeringCacheSetting); diff --git a/caf-caching/src/test/java/io/iec/edp/caf/caching/LayeringCacheAutoConfig.java b/caf-caching/src/test/java/io/iec/edp/caf/caching/LayeringCacheAutoConfig.java index 1c3ea8e51712f20a4cfe0639c51846a1e49f6aee..adac63f0431ff0d7fd229b9f691a10bd6f848efb 100644 --- a/caf-caching/src/test/java/io/iec/edp/caf/caching/LayeringCacheAutoConfig.java +++ b/caf-caching/src/test/java/io/iec/edp/caf/caching/LayeringCacheAutoConfig.java @@ -22,6 +22,7 @@ import io.iec.edp.caf.caching.properties.RedisCacheProperties; import io.iec.edp.caf.caching.api.CacheManager; import io.iec.edp.caf.caching.manager.LayeringCacheManager; import io.iec.edp.caf.caching.properties.LayeringCacheProperties; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; @@ -37,9 +38,12 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy; @EnableConfigurationProperties({JedisPoolConfigProperties.class, LayeringCacheProperties.class, RedisCacheProperties.class}) public class LayeringCacheAutoConfig { + @Value("${redis.enabled:true}") + private Boolean enableRedis; + @Bean public CacheManager cacheManager(RedisCacheProperties properties, JedisPoolConfigProperties jedisProperties, LayeringCacheProperties status) { - LayeringCacheManager manager = new LayeringCacheManager(properties, jedisProperties); + LayeringCacheManager manager = new LayeringCacheManager(properties, jedisProperties, enableRedis); // 默认开启统计功能 manager.setStats(status.isStats()); return manager; diff --git a/caf-caching/src/test/java/io/iec/edp/caf/caching/LayeringCacheTest.java b/caf-caching/src/test/java/io/iec/edp/caf/caching/LayeringCacheTest.java index 33d5c0a52a6b7ec15bdc6a3c48a80b03a701856b..1e8b9398865ca3579b0439457551059ec8e9f382 100644 --- a/caf-caching/src/test/java/io/iec/edp/caf/caching/LayeringCacheTest.java +++ b/caf-caching/src/test/java/io/iec/edp/caf/caching/LayeringCacheTest.java @@ -258,7 +258,7 @@ public class LayeringCacheTest { @Data @AllArgsConstructor @NoArgsConstructor - class Student { + static class Student { private int number; private String code; private String name;