wangliang пре 2 година
родитељ
комит
6bceec8b02

+ 16 - 16
pom.xml

@@ -36,7 +36,7 @@
         <!--        <mysql.version>8.0.20</mysql.version>-->
         <hutool.version>5.0.6</hutool.version>
         <bcprov.version>1.52</bcprov.version>
-        <!--        <redis.version>3.3.0</redis.version>-->
+                <redis.version>3.3.0</redis.version>
         <rocket.version>2.1.0</rocket.version>
         <!--        <mybatis-plus.version>3.4.2</mybatis-plus.version>-->
         <spring-boot.version>2.3.0.RELEASE</spring-boot.version>
@@ -199,16 +199,16 @@
                 <version>${bcprov.version}</version>
             </dependency>
             <!-- redis -->
-            <!--            <dependency>-->
-            <!--                <groupId>org.springframework.data</groupId>-->
-            <!--                <artifactId>spring-data-redis</artifactId>-->
-            <!--                <version>${spring-boot.version}</version>-->
-            <!--            </dependency>-->
-            <!--            <dependency>-->
-            <!--                <groupId>redis.clients</groupId>-->
-            <!--                <artifactId>jedis</artifactId>-->
-            <!--                <version>${redis.version}</version>-->
-            <!--            </dependency>-->
+            <dependency>
+                <groupId>org.springframework.data</groupId>
+                <artifactId>spring-data-redis</artifactId>
+                <version>${spring-boot.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>redis.clients</groupId>
+                <artifactId>jedis</artifactId>
+                <version>${redis.version}</version>
+            </dependency>
             <!-- ehcache 缓存 -->
             <!--            <dependency>-->
             <!--                <groupId>net.sf.ehcache</groupId>-->
@@ -276,11 +276,11 @@
                 <artifactId>data-mybatis-plus</artifactId>
                 <version>${qmth.boot.version}</version>
             </dependency>
-            <dependency>
-                <groupId>com.qmth.boot</groupId>
-                <artifactId>data-redis</artifactId>
-                <version>${qmth.boot.version}</version>
-            </dependency>
+            <!--            <dependency>-->
+            <!--                <groupId>com.qmth.boot</groupId>-->
+            <!--                <artifactId>data-redis</artifactId>-->
+            <!--                <version>${qmth.boot.version}</version>-->
+            <!--            </dependency>-->
             <dependency>
                 <groupId>org.apache.httpcomponents</groupId>
                 <artifactId>httpmime</artifactId>

+ 17 - 3
themis-admin/src/main/resources/application.properties

@@ -26,10 +26,24 @@ db.username=root
 db.password=123456789
 
 #redis\u6570\u636E\u6E90\u914D\u7F6E
-com.qmth.redis.host=${db.host}
-com.qmth.redis.port=6379
-com.qmth.redis.db=13
+#com.qmth.redis.host=${db.host}
+#com.qmth.redis.port=6379
+#com.qmth.redis.db=13
 #com.qmth.redis.password=
+redis.host=${db.host}
+redis.database=13
+redis.port=6379
+redis.password=
+
+spring.redis.database=${redis.database}
+spring.redis.host=${redis.host}
+spring.redis.port=${redis.port}
+spring.redis.password=${redis.password}
+spring.redis.jedis.pool.max-active=30
+spring.redis.jedis.pool.max-wait=-1ms
+spring.redis.jedis.pool.max-idle=5
+spring.redis.jedis.pool.min-idle=1
+spring.redis.jedis.timeout=180000
 
 #mysql\u914D\u7F6E
 com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true

+ 12 - 12
themis-business/pom.xml

@@ -44,14 +44,14 @@
 <!--			<groupId>org.springframework.boot</groupId>-->
 <!--			<artifactId>spring-boot-starter-cache</artifactId>-->
 <!--		</dependency>-->
-<!--		<dependency>-->
-<!--			<groupId>org.springframework.data</groupId>-->
-<!--			<artifactId>spring-data-redis</artifactId>-->
-<!--		</dependency>-->
-<!--		<dependency>-->
-<!--			<groupId>redis.clients</groupId>-->
-<!--			<artifactId>jedis</artifactId>-->
-<!--		</dependency>-->
+		<dependency>
+			<groupId>org.springframework.data</groupId>
+			<artifactId>spring-data-redis</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>redis.clients</groupId>
+			<artifactId>jedis</artifactId>
+		</dependency>
 		<dependency>
 			<groupId>com.aliyun.oss</groupId>
 			<artifactId>aliyun-sdk-oss</artifactId>
@@ -108,9 +108,9 @@
             <groupId>com.qmth.boot</groupId>
             <artifactId>data-mybatis-plus</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.qmth.boot</groupId>
-            <artifactId>data-redis</artifactId>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.qmth.boot</groupId>-->
+<!--            <artifactId>data-redis</artifactId>-->
+<!--        </dependency>-->
 	</dependencies>
 </project>

+ 105 - 106
themis-business/src/main/java/com/qmth/themis/business/config/RedisConfig.java

@@ -1,107 +1,106 @@
-//package com.qmth.themis.business.config;
-//
-//import com.fasterxml.jackson.annotation.JsonAutoDetect;
-//import com.fasterxml.jackson.annotation.JsonTypeInfo;
-//import com.fasterxml.jackson.annotation.PropertyAccessor;
-//import com.fasterxml.jackson.databind.ObjectMapper;
-//import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
-//import com.qmth.themis.business.constant.SystemConstant;
-//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 org.springframework.data.redis.core.RedisTemplate;
-//import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
-//import org.springframework.data.redis.serializer.RedisSerializationContext;
-//import org.springframework.data.redis.serializer.StringRedisSerializer;
-//
-//import java.time.Duration;
-//import java.util.HashMap;
-//import java.util.Map;
-//
-///**
-// * @Description: redis config
-// * @Param:
-// * @return:
-// * @Author: wangliang
-// * @Date: 2020/4/16
-// */
-//@Configuration
-//public class RedisConfig {
-//
-//    @Bean
-//    public RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
-//        return new RedisCacheManager(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory),
-//                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_DEFAULT_EXPIRE_TIME)
-////                , // 默认策略,未配置的 key 会使用这个
-////                this.getRedisCacheConfigurationMap() // 指定 key 策略
-//        );
+package com.qmth.themis.business.config;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
+import com.qmth.themis.business.constant.SystemConstant;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+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 org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializationContext;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+import java.time.Duration;
+
+/**
+ * @Description: redis config
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2020/4/16
+ */
+@Configuration
+public class RedisConfig {
+
+    @Bean
+    public RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
+        return new RedisCacheManager(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory),
+                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_DEFAULT_EXPIRE_TIME)
+//                , // 默认策略,未配置的 key 会使用这个
+//                this.getRedisCacheConfigurationMap() // 指定 key 策略
+        );
+    }
+
+//    private Map<String, RedisCacheConfiguration> getRedisCacheConfigurationMap() {
+//        Map<String, RedisCacheConfiguration> redisCacheConfigurationMap = new HashMap<>();
+//        redisCacheConfigurationMap.put(SystemConstant.userOauth,
+//                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
+//        redisCacheConfigurationMap.put(SystemConstant.studentOauth,
+//                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
+//        redisCacheConfigurationMap.put(SystemConstant.userAccount,
+//                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
+//        redisCacheConfigurationMap.put(SystemConstant.studentAccount,
+//                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
+//        redisCacheConfigurationMap.put(SystemConstant.orgCache,
+//                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
+//        redisCacheConfigurationMap.put(SystemConstant.orgCodeCache,
+//                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
+//        redisCacheConfigurationMap.put(SystemConstant.roleCache,
+//                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
+//        redisCacheConfigurationMap.put(SystemConstant.configCache,
+//                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
+//        return redisCacheConfigurationMap;
 //    }
-//
-////    private Map<String, RedisCacheConfiguration> getRedisCacheConfigurationMap() {
-////        Map<String, RedisCacheConfiguration> redisCacheConfigurationMap = new HashMap<>();
-////        redisCacheConfigurationMap.put(SystemConstant.userOauth,
-////                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
-////        redisCacheConfigurationMap.put(SystemConstant.studentOauth,
-////                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
-////        redisCacheConfigurationMap.put(SystemConstant.userAccount,
-////                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
-////        redisCacheConfigurationMap.put(SystemConstant.studentAccount,
-////                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
-////        redisCacheConfigurationMap.put(SystemConstant.orgCache,
-////                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
-////        redisCacheConfigurationMap.put(SystemConstant.orgCodeCache,
-////                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
-////        redisCacheConfigurationMap.put(SystemConstant.roleCache,
-////                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
-////        redisCacheConfigurationMap.put(SystemConstant.configCache,
-////                this.getRedisCacheConfigurationWithTtl(SystemConstant.REDIS_EXPIRE_TIME));
-////        return redisCacheConfigurationMap;
-////    }
-//
-//    private RedisCacheConfiguration getRedisCacheConfigurationWithTtl(Long seconds) {
-//        Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(
-//                Object.class);
-//        ObjectMapper om = new ObjectMapper();
-//        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
-//        om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL,
-//                JsonTypeInfo.As.WRAPPER_ARRAY);
-//        //om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
-//        jackson2JsonRedisSerializer.setObjectMapper(om);
-//
-//        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
-//        redisCacheConfiguration = redisCacheConfiguration.serializeKeysWith(
-//                RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
-//                .serializeValuesWith(
-//                        RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
-//                .entryTtl(Duration.ofSeconds(seconds))
-//                .disableCachingNullValues()
-//                .computePrefixWith(cacheName -> cacheName + ":");
-//        return redisCacheConfiguration;
-//    }
-//
-//    @Bean
-//    @Primary
-//    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
-//        RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
-//        template.setConnectionFactory(connectionFactory);
-//        //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值
-//        Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
-//        ObjectMapper mapper = new ObjectMapper();
-//        mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
-//        mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL,
-//                JsonTypeInfo.As.WRAPPER_ARRAY);
-//        //mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
-//        serializer.setObjectMapper(mapper);
-//        template.setValueSerializer(serializer);
-//        template.setHashValueSerializer(serializer);
-//        //使用StringRedisSerializer来序列化和反序列化redis的key值
-//        template.setKeySerializer(new StringRedisSerializer());
-//        template.setHashKeySerializer(new StringRedisSerializer());
-//        template.afterPropertiesSet();
-//        return template;
-//    }
-//}
+
+    private RedisCacheConfiguration getRedisCacheConfigurationWithTtl(Long seconds) {
+        Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(
+                Object.class);
+        ObjectMapper om = new ObjectMapper();
+        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL,
+                JsonTypeInfo.As.WRAPPER_ARRAY);
+        //om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+        jackson2JsonRedisSerializer.setObjectMapper(om);
+
+        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
+        redisCacheConfiguration = redisCacheConfiguration.serializeKeysWith(
+                        RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
+                .serializeValuesWith(
+                        RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))
+                .entryTtl(Duration.ofSeconds(seconds))
+                .disableCachingNullValues()
+                .computePrefixWith(cacheName -> cacheName + ":");
+        return redisCacheConfiguration;
+    }
+
+    @Bean
+    @Primary
+    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
+        RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
+        template.setConnectionFactory(connectionFactory);
+        //使用Jackson2JsonRedisSerializer来序列化和反序列化redis的value值
+        Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL,
+                JsonTypeInfo.As.WRAPPER_ARRAY);
+        //mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+        serializer.setObjectMapper(mapper);
+        template.setValueSerializer(serializer);
+        template.setHashValueSerializer(serializer);
+        //使用StringRedisSerializer来序列化和反序列化redis的key值
+        template.setKeySerializer(new StringRedisSerializer());
+        template.setHashKeySerializer(new StringRedisSerializer());
+        template.afterPropertiesSet();
+        return template;
+    }
+}

+ 18 - 3
themis-exam/src/main/resources/application.properties

@@ -18,11 +18,26 @@ db.username=root
 db.password=123456789
 
 #redis\u6570\u636E\u6E90\u914D\u7F6E
-com.qmth.redis.host=${db.host}
-com.qmth.redis.port=6379
-com.qmth.redis.db=13
+#com.qmth.redis.host=${db.host}
+#com.qmth.redis.port=6379
+#com.qmth.redis.db=13
 #com.qmth.redis.password=
 
+redis.host=${db.host}
+redis.database=13
+redis.port=6379
+redis.password=
+
+spring.redis.database=${redis.database}
+spring.redis.host=${redis.host}
+spring.redis.port=${redis.port}
+spring.redis.password=${redis.password}
+spring.redis.jedis.pool.max-active=30
+spring.redis.jedis.pool.max-wait=-1ms
+spring.redis.jedis.pool.max-idle=5
+spring.redis.jedis.pool.min-idle=1
+spring.redis.jedis.timeout=180000
+
 #mysql\u914D\u7F6E
 com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
 com.qmth.datasource.username=${db.username}

+ 18 - 3
themis-task/src/main/resources/application.properties

@@ -18,11 +18,26 @@ db.username=root
 db.password=123456789
 
 #redis\u6570\u636E\u6E90\u914D\u7F6E
-com.qmth.redis.host=${db.host}
-com.qmth.redis.port=6379
-com.qmth.redis.db=13
+#com.qmth.redis.host=${db.host}
+#com.qmth.redis.port=6379
+#com.qmth.redis.db=13
 #com.qmth.redis.password=
 
+redis.host=${db.host}
+redis.database=13
+redis.port=6379
+redis.password=
+
+spring.redis.database=${redis.database}
+spring.redis.host=${redis.host}
+spring.redis.port=${redis.port}
+spring.redis.password=${redis.password}
+spring.redis.jedis.pool.max-active=30
+spring.redis.jedis.pool.max-wait=-1ms
+spring.redis.jedis.pool.max-idle=5
+spring.redis.jedis.pool.min-idle=1
+spring.redis.jedis.timeout=180000
+
 #mysql\u914D\u7F6E
 com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
 com.qmth.datasource.username=${db.username}