From 16534568f4c4e5e54145b1354232b15b3412e940 Mon Sep 17 00:00:00 2001 From: Gitee_zyf <1345267730@qq.com> Date: Thu, 4 Aug 2022 11:17:28 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=86=E5=B8=83?= =?UTF-8?q?=E5=BC=8F=E9=94=81=E4=B8=BA=E8=87=AA=E5=8A=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E7=94=A8=E7=89=B9=E5=88=AB=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E9=A1=B9=E7=9B=AE=E7=9A=84=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=20sacnBasePackages=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- redis-shared-lock/pom.xml | 5 +++++ .../com/ls/redisSharedLock/config/RedisConfig.java | 12 ++++++++---- .../src/main/resources/META-INF/spring.factories | 5 +++++ .../src/main/java/com/ls/demo/Application.java | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 redis-shared-lock/src/main/resources/META-INF/spring.factories diff --git a/redis-shared-lock/pom.xml b/redis-shared-lock/pom.xml index 0694d47..6cf1076 100644 --- a/redis-shared-lock/pom.xml +++ b/redis-shared-lock/pom.xml @@ -20,6 +20,11 @@ org.springframework.boot spring-boot-starter-data-redis + + + org.springframework.boot + spring-boot-autoconfigure + org.springframework.boot diff --git a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java index a5eca76..c317e80 100644 --- a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java +++ b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java @@ -7,6 +7,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.cache.CacheManager; import org.springframework.context.annotation.Bean; @@ -21,7 +22,7 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; import redis.clients.jedis.JedisPoolConfig; @Configuration -@EnableAutoConfiguration +//@EnableAutoConfiguration 为了在其他项目中作为start-组件 我们使用springboot 自动装配 public class RedisConfig { public static Logger logger = LoggerFactory.getLogger(RedisConfig.class); @@ -29,7 +30,7 @@ public class RedisConfig { private Long defaultExpiration; @Bean - @ConfigurationProperties(prefix = "spring.redis") + @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) public JedisPoolConfig getRedisConfig() { JedisPoolConfig config = new JedisPoolConfig(); return config; @@ -37,7 +38,7 @@ public class RedisConfig { @Primary @Bean(name = "jedisConnectionFactory") - @ConfigurationProperties(prefix = "spring.redis") + @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) public JedisConnectionFactory getConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); JedisPoolConfig config = getRedisConfig(); @@ -49,6 +50,7 @@ public class RedisConfig { @Bean(name = "redisJdkTemplate") + @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) public RedisTemplate getRedisJdkTemplate() { RedisTemplate template = new RedisTemplate<>(); @@ -62,6 +64,7 @@ public class RedisConfig { } @Bean(name = "redisTemplate") + @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) public RedisTemplate getRedisTemplate() { // RedisTemplate redisTemplate = new RedisTemplate<>(); // redisTemplate.setConnectionFactory(getConnectionFactory()); @@ -88,12 +91,13 @@ public class RedisConfig { } @Bean(name = "stringRedisTemplate") + @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) public StringRedisTemplate getStringRedisTemplate() { return new StringRedisTemplate(getConnectionFactory()); } @Bean - @ConfigurationProperties(prefix = "spring.redis") + @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) public CacheManager cacheManager() { RedisCacheManager redisCacheManager = new RedisCacheManager(getRedisTemplate()); redisCacheManager.setDefaultExpiration(defaultExpiration); diff --git a/redis-shared-lock/src/main/resources/META-INF/spring.factories b/redis-shared-lock/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000..16fb3a8 --- /dev/null +++ b/redis-shared-lock/src/main/resources/META-INF/spring.factories @@ -0,0 +1,5 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +com.ls.redisSharedLock.config.RedisConfig,\ +com.ls.redisSharedLock.RedisClient,\ +com.ls.redisSharedLock.lock.handler.LockHandler + diff --git a/shared-lock-demo/src/main/java/com/ls/demo/Application.java b/shared-lock-demo/src/main/java/com/ls/demo/Application.java index 432bf8f..cbe0b23 100644 --- a/shared-lock-demo/src/main/java/com/ls/demo/Application.java +++ b/shared-lock-demo/src/main/java/com/ls/demo/Application.java @@ -3,7 +3,7 @@ package com.ls.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -@SpringBootApplication(scanBasePackages = {"com.ls"}) +@SpringBootApplication//(scanBasePackages = {"com.ls"}) 因为使用自动装配所以 不用特别设置扫描包的root地址 就可以自动扫描并配置 sharelock public class Application { public static void main(String[] args) { -- Gitee From 046a34208612699b4a7108b3d0dc04a7cac0df75 Mon Sep 17 00:00:00 2001 From: feige <134526773> Date: Wed, 21 Sep 2022 07:28:26 +0800 Subject: [PATCH 2/4] sppringboot version update -> 2.2.4 --- redis-shared-lock/pom.xml | 6 ++- .../redisSharedLock/config/RedisConfig.java | 41 ++++----------- .../lock/annotion/SharedLock.java | 2 +- shared-lock-demo/pom.xml | 2 +- .../src/main/resources/application.yml | 51 ++++++++++++------- .../target/classes/application.yml | 51 ++++++++++++------- 6 files changed, 84 insertions(+), 69 deletions(-) diff --git a/redis-shared-lock/pom.xml b/redis-shared-lock/pom.xml index 6cf1076..a0f8c17 100644 --- a/redis-shared-lock/pom.xml +++ b/redis-shared-lock/pom.xml @@ -8,7 +8,7 @@ org.springframework.boot spring-boot-starter-parent - 1.5.13.RELEASE + 2.2.4.RELEASE com.ls @@ -35,6 +35,10 @@ com.fasterxml.jackson.core jackson-databind + + org.apache.commons + commons-pool2 + diff --git a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java index c317e80..40d0ba8 100644 --- a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java +++ b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java @@ -14,12 +14,13 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; -import redis.clients.jedis.JedisPoolConfig; + @Configuration //@EnableAutoConfiguration 为了在其他项目中作为start-组件 我们使用springboot 自动装配 @@ -29,32 +30,14 @@ public class RedisConfig { @Value("${spring.redis.defaultExpiration:3600}") private Long defaultExpiration; - @Bean - @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) - public JedisPoolConfig getRedisConfig() { - JedisPoolConfig config = new JedisPoolConfig(); - return config; - } - - @Primary - @Bean(name = "jedisConnectionFactory") - @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) - public JedisConnectionFactory getConnectionFactory() { - JedisConnectionFactory factory = new JedisConnectionFactory(); - JedisPoolConfig config = getRedisConfig(); - factory.setPoolConfig(config); - logger.info("redis连接池配置成功"); - return factory; - } - @Bean(name = "redisJdkTemplate") @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) - public RedisTemplate getRedisJdkTemplate() { + public RedisTemplate getRedisJdkTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate template = new RedisTemplate<>(); - template.setConnectionFactory(getConnectionFactory()); + template.setConnectionFactory(redisConnectionFactory); StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); template.setKeySerializer(stringRedisSerializer); @@ -65,7 +48,7 @@ public class RedisConfig { @Bean(name = "redisTemplate") @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) - public RedisTemplate getRedisTemplate() { + public RedisTemplate getRedisTemplate( RedisConnectionFactory redisConnectionFactory) { // RedisTemplate redisTemplate = new RedisTemplate<>(); // redisTemplate.setConnectionFactory(getConnectionFactory()); // StringRedisSerializer stringRedisSerializer = new @@ -75,7 +58,7 @@ public class RedisConfig { // return redisTemplate; RedisTemplate template = new RedisTemplate<>(); - template.setConnectionFactory(getConnectionFactory()); + template.setConnectionFactory(redisConnectionFactory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); @@ -92,17 +75,11 @@ public class RedisConfig { @Bean(name = "stringRedisTemplate") @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) - public StringRedisTemplate getStringRedisTemplate() { - return new StringRedisTemplate(getConnectionFactory()); + public StringRedisTemplate getStringRedisTemplate( RedisConnectionFactory redisConnectionFactory) { + return new StringRedisTemplate(redisConnectionFactory); } - @Bean - @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) - public CacheManager cacheManager() { - RedisCacheManager redisCacheManager = new RedisCacheManager(getRedisTemplate()); - redisCacheManager.setDefaultExpiration(defaultExpiration); - return redisCacheManager; - } + // @Bean // public RedisTemplate redisTemplate(RedisConnectionFactory diff --git a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/lock/annotion/SharedLock.java b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/lock/annotion/SharedLock.java index 4ff2c4c..a393ae5 100644 --- a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/lock/annotion/SharedLock.java +++ b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/lock/annotion/SharedLock.java @@ -19,7 +19,7 @@ public @interface SharedLock { String value() default ""; @AliasFor("value") - String key(); + String key() default ""; LockPolicy policy() default LockPolicy.throw_exception; diff --git a/shared-lock-demo/pom.xml b/shared-lock-demo/pom.xml index a7f31d0..98aadb7 100644 --- a/shared-lock-demo/pom.xml +++ b/shared-lock-demo/pom.xml @@ -8,7 +8,7 @@ org.springframework.boot spring-boot-starter-parent - 1.5.13.RELEASE + 2.2.4.RELEASE com.ls diff --git a/shared-lock-demo/src/main/resources/application.yml b/shared-lock-demo/src/main/resources/application.yml index 66f930e..eb5c2af 100644 --- a/shared-lock-demo/src/main/resources/application.yml +++ b/shared-lock-demo/src/main/resources/application.yml @@ -7,22 +7,39 @@ server: debug: false +#spring: +# +## profiles: +## active: test,module,common +# +# main: +# banner-mode: "off" +# redis: +# database: 0 +# hostName: your ip +# port: 2001 +# password: your pass word +# pool: +# maxActive: 50 +# maxWait: 3000 +# maxIdle: 30 +# minIdle: 10 +# timeout: 1000 spring: + redis: + cluster: + nodes: + - 192.168.2.118:11001 + - 192.168.2.112:11001 + - 192.168.2.119:11001 + - 192.168.2.118:11002 + - 192.168.2.112:11002 + - 192.168.2.119:11002 + timeout: 60000ms -# profiles: -# active: test,module,common - - main: - banner-mode: "off" - redis: - database: 0 - hostName: your ip - port: 2001 - password: your pass word - pool: - maxActive: 50 - maxWait: 3000 - maxIdle: 30 - minIdle: 10 - timeout: 1000 - defaultExpiration: 3600 \ No newline at end of file + lettuce: + pool: + maxActive: 50 + maxWait: 3000 + maxIdle: 30 + minIdle: 10 diff --git a/shared-lock-demo/target/classes/application.yml b/shared-lock-demo/target/classes/application.yml index ef1c386..eb5c2af 100644 --- a/shared-lock-demo/target/classes/application.yml +++ b/shared-lock-demo/target/classes/application.yml @@ -7,22 +7,39 @@ server: debug: false +#spring: +# +## profiles: +## active: test,module,common +# +# main: +# banner-mode: "off" +# redis: +# database: 0 +# hostName: your ip +# port: 2001 +# password: your pass word +# pool: +# maxActive: 50 +# maxWait: 3000 +# maxIdle: 30 +# minIdle: 10 +# timeout: 1000 spring: + redis: + cluster: + nodes: + - 192.168.2.118:11001 + - 192.168.2.112:11001 + - 192.168.2.119:11001 + - 192.168.2.118:11002 + - 192.168.2.112:11002 + - 192.168.2.119:11002 + timeout: 60000ms -# profiles: -# active: test,module,common - - main: - banner-mode: "off" - redis: - database: 0 - hostName: 10.0.2.80 - port: 2001 - password: wcycno1 - pool: - maxActive: 50 - maxWait: 3000 - maxIdle: 30 - minIdle: 10 - timeout: 1000 - defaultExpiration: 3600 \ No newline at end of file + lettuce: + pool: + maxActive: 50 + maxWait: 3000 + maxIdle: 30 + minIdle: 10 -- Gitee From 557a3b03be3d86840ea625de96104ed1e10a90b4 Mon Sep 17 00:00:00 2001 From: feige <134526773> Date: Wed, 21 Sep 2022 20:49:57 +0800 Subject: [PATCH 3/4] SSSSSSSS --- .../com/ls/redisSharedLock/RedisClient.java | 29 +++++++++++++++++++ .../redisSharedLock/config/RedisConfig.java | 6 ---- shared-lock-demo/pom.xml | 11 +++++++ .../src/main/resources/application.yml | 3 +- .../target/classes/application.yml | 3 +- 5 files changed, 42 insertions(+), 10 deletions(-) diff --git a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/RedisClient.java b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/RedisClient.java index d9931f3..a521c8d 100644 --- a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/RedisClient.java +++ b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/RedisClient.java @@ -41,6 +41,35 @@ public class RedisClient { return getRedisTemplate().execute(new SessionCallback() { @Override public Boolean execute(RedisOperations operations) throws DataAccessException { + /** + * + // ---- + // local isExists = redis.call('exists',KEYS[1]) + //if isExists == 1 then + // redis.call('hincrby',KEYS[1],KEYS[2],ARGV[3]) + // redis.call('hset',KEYS[1],KEYS[3],ARGV[2]) + //end + //if isExists == 0 then + // redis.call('hset',KEYS[1],KEYS[2],ARGV[1],KEYS[3],ARGV[2]) + //end + //local fileNoMap = {} + //fileNoMap['bh'] = redis.call('hget',KEYS[1],KEYS[2]) + //fileNoMap['id'] = redis.call('hget',KEYS[1],KEYS[3]) + //return cjson.encode(fileNoMap) + // --- + // operations.multi(); + String script = "redis.call('LPUSH', KEYS[1], ARGV[1]);" + + "local is_exists = redis.call('EXISTS', KEYS[1]);" + + "if is_exists == 1 then\n" + + "redis.call('HINCRBY', KEYS[2], ARGV[2], 1);\n" + + "else\n" + + "redis.call('HSET', KEYS[2], ARGV[2], 1);\n" + + "end"; + List keys = Arrays.asList("key1", "key2"); + List args = Arrays.asList("a1", "a2"); + // jedisCluster.eval(script, keys, args); + + */ operations.multi(); operations.opsForValue().setIfAbsent(key, value); operations.expire(key, expireTime, unit); diff --git a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java index 40d0ba8..2fe7aee 100644 --- a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java +++ b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java @@ -6,16 +6,10 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.cache.CacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; diff --git a/shared-lock-demo/pom.xml b/shared-lock-demo/pom.xml index 98aadb7..c3cae7b 100644 --- a/shared-lock-demo/pom.xml +++ b/shared-lock-demo/pom.xml @@ -26,6 +26,17 @@ redis-shared-lock 1.0-SNAPSHOT + + org.springframework.boot + spring-boot-starter-test + + + junit + junit + 4.12 + test + + diff --git a/shared-lock-demo/src/main/resources/application.yml b/shared-lock-demo/src/main/resources/application.yml index eb5c2af..d0571f6 100644 --- a/shared-lock-demo/src/main/resources/application.yml +++ b/shared-lock-demo/src/main/resources/application.yml @@ -35,8 +35,7 @@ spring: - 192.168.2.118:11002 - 192.168.2.112:11002 - 192.168.2.119:11002 - timeout: 60000ms - + timeout: 20000ms lettuce: pool: maxActive: 50 diff --git a/shared-lock-demo/target/classes/application.yml b/shared-lock-demo/target/classes/application.yml index eb5c2af..d0571f6 100644 --- a/shared-lock-demo/target/classes/application.yml +++ b/shared-lock-demo/target/classes/application.yml @@ -35,8 +35,7 @@ spring: - 192.168.2.118:11002 - 192.168.2.112:11002 - 192.168.2.119:11002 - timeout: 60000ms - + timeout: 20000ms lettuce: pool: maxActive: 50 -- Gitee From f38fb86a63f905193f89ff8150835e175ef9bfe0 Mon Sep 17 00:00:00 2001 From: feige <134526773> Date: Thu, 22 Sep 2022 22:28:19 +0800 Subject: [PATCH 4/4] SSSSSSSS --- .../com/ls/redisSharedLock/RedisClient.java | 4 +- .../redisSharedLock/config/RedisConfig.java | 126 +++++++++--------- 2 files changed, 66 insertions(+), 64 deletions(-) diff --git a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/RedisClient.java b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/RedisClient.java index a521c8d..b4a6291 100644 --- a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/RedisClient.java +++ b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/RedisClient.java @@ -38,6 +38,8 @@ public class RedisClient { } public Boolean setNx(String key,Object value,long expireTime,TimeUnit unit){ + +// redisTemplate.execute() return getRedisTemplate().execute(new SessionCallback() { @Override public Boolean execute(RedisOperations operations) throws DataAccessException { @@ -70,7 +72,7 @@ public class RedisClient { // jedisCluster.eval(script, keys, args); */ - operations.multi(); +// operations.multi(); operations.opsForValue().setIfAbsent(key, value); operations.expire(key, expireTime, unit); List exec = operations.exec(); diff --git a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java index 2fe7aee..bf8d8ce 100644 --- a/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java +++ b/redis-shared-lock/src/main/java/com/ls/redisSharedLock/config/RedisConfig.java @@ -19,76 +19,76 @@ import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration //@EnableAutoConfiguration 为了在其他项目中作为start-组件 我们使用springboot 自动装配 public class RedisConfig { - public static Logger logger = LoggerFactory.getLogger(RedisConfig.class); + public static Logger logger = LoggerFactory.getLogger(RedisConfig.class); - @Value("${spring.redis.defaultExpiration:3600}") - private Long defaultExpiration; + @Value("${spring.redis.defaultExpiration:3600}") + private Long defaultExpiration; + // +// @Bean(name = "redisJdkTemplate") + @Bean(name = "redisTemplate") + @ConditionalOnProperty(name = "spring.redis", matchIfMissing = true) + public RedisTemplate getRedisJdkTemplate(RedisConnectionFactory redisConnectionFactory) { - @Bean(name = "redisJdkTemplate") - @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) - public RedisTemplate getRedisJdkTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(redisConnectionFactory); - RedisTemplate template = new RedisTemplate<>(); - template.setConnectionFactory(redisConnectionFactory); + StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); + template.setKeySerializer(stringRedisSerializer); + template.setHashKeySerializer(stringRedisSerializer); + template.afterPropertiesSet(); + return template; + } - StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); - template.setKeySerializer(stringRedisSerializer); - template.setHashKeySerializer(stringRedisSerializer); - template.afterPropertiesSet(); - return template; - } +// @Bean(name = "redisTemplate") +// @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) +// public RedisTemplate getRedisTemplate( RedisConnectionFactory redisConnectionFactory) { +// // RedisTemplate redisTemplate = new RedisTemplate<>(); +// // redisTemplate.setConnectionFactory(getConnectionFactory()); +// // StringRedisSerializer stringRedisSerializer = new +// // StringRedisSerializer(Charset.forName("UTF-8")); +// // redisTemplate.setKeySerializer(stringRedisSerializer); +// // redisTemplate.setHashKeySerializer(stringRedisSerializer); +// // return redisTemplate; +// +// RedisTemplate template = new RedisTemplate<>(); +// template.setConnectionFactory(redisConnectionFactory); +// Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); +// ObjectMapper om = new ObjectMapper(); +// om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); +// om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); +// jackson2JsonRedisSerializer.setObjectMapper(om); +// StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); +// template.setKeySerializer(stringRedisSerializer); +// template.setHashKeySerializer(stringRedisSerializer); +// template.setValueSerializer(jackson2JsonRedisSerializer); +// template.setHashValueSerializer(jackson2JsonRedisSerializer); +// template.afterPropertiesSet(); +// return template; +// } - @Bean(name = "redisTemplate") - @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) - public RedisTemplate getRedisTemplate( RedisConnectionFactory redisConnectionFactory) { - // RedisTemplate redisTemplate = new RedisTemplate<>(); - // redisTemplate.setConnectionFactory(getConnectionFactory()); - // StringRedisSerializer stringRedisSerializer = new - // StringRedisSerializer(Charset.forName("UTF-8")); - // redisTemplate.setKeySerializer(stringRedisSerializer); - // redisTemplate.setHashKeySerializer(stringRedisSerializer); - // return redisTemplate; + @Bean(name = "stringRedisTemplate") + @ConditionalOnProperty(name = "spring.redis", matchIfMissing = true) + public StringRedisTemplate getStringRedisTemplate(RedisConnectionFactory redisConnectionFactory) { + return new StringRedisTemplate(redisConnectionFactory); + } - RedisTemplate template = new RedisTemplate<>(); - template.setConnectionFactory(redisConnectionFactory); - Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); - ObjectMapper om = new ObjectMapper(); - om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); - jackson2JsonRedisSerializer.setObjectMapper(om); - StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); - template.setKeySerializer(stringRedisSerializer); - template.setHashKeySerializer(stringRedisSerializer); - template.setValueSerializer(jackson2JsonRedisSerializer); - template.setHashValueSerializer(jackson2JsonRedisSerializer); - template.afterPropertiesSet(); - return template; - } - @Bean(name = "stringRedisTemplate") - @ConditionalOnProperty(name = "spring.redis",matchIfMissing = true) - public StringRedisTemplate getStringRedisTemplate( RedisConnectionFactory redisConnectionFactory) { - return new StringRedisTemplate(redisConnectionFactory); - } - - - - // @Bean - // public RedisTemplate redisTemplate(RedisConnectionFactory - // factory) { - //// StringRedisTemplate template = new StringRedisTemplate(factory); - // RedisTemplate template = new RedisTemplate<>(); - // redisTemplate.setConnectionFactory(getConnectionFactory()); - // Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new - // Jackson2JsonRedisSerializer(Object.class); - // ObjectMapper om = new ObjectMapper(); - // om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - // om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); - // jackson2JsonRedisSerializer.setObjectMapper(om); - // template.setValueSerializer(jackson2JsonRedisSerializer); - // template.afterPropertiesSet(); - // return template; - // } + // @Bean + // public RedisTemplate redisTemplate(RedisConnectionFactory + // factory) { + //// StringRedisTemplate template = new StringRedisTemplate(factory); + // RedisTemplate template = new RedisTemplate<>(); + // redisTemplate.setConnectionFactory(getConnectionFactory()); + // Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new + // Jackson2JsonRedisSerializer(Object.class); + // ObjectMapper om = new ObjectMapper(); + // om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + // om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + // jackson2JsonRedisSerializer.setObjectMapper(om); + // template.setValueSerializer(jackson2JsonRedisSerializer); + // template.afterPropertiesSet(); + // return template; + // } } -- Gitee