Browse Source

win版本项目修改稿3

win
adiao 3 years ago
parent
commit
d84da111b2
  1. 4
      app-service/pom.xml
  2. 49
      app-service/src/main/java/com/depsystem/app/systemServer/config/RedisConfig.java
  3. 25
      app-service/src/main/java/com/depsystem/app/systemServer/util/RedisUtil.java
  4. 4
      app-start/src/test/java/com/depsystem/app/AppApplicationTests.java

4
app-service/pom.xml

@ -115,6 +115,10 @@
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId> <artifactId>commons-pool2</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

49
app-service/src/main/java/com/depsystem/app/systemServer/config/RedisConfig.java

@ -1,45 +1,32 @@
package com.depsystem.app.systemServer.config; package com.depsystem.app.systemServer.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 org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.net.UnknownHostException;
@Configuration @Configuration
public class RedisConfig { public class RedisConfig {
@Bean
@SuppressWarnings("all")
public RedisTemplate<String,Object> redisTemplate (RedisConnectionFactory redisConnectionFactory)throws UnknownHostException {
RedisTemplate<String,Object> redis = new RedisTemplate<>();
redis.setConnectionFactory(redisConnectionFactory);
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
// mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); 这个被弃用了,所以现在要用 activateDefaultTyping
mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);
jackson2JsonRedisSerializer.setObjectMapper(mapper);
RedisSerializer<String> stringRedisSerializer = new StringRedisSerializer(); @Bean
// key采用String的序列化方式 public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory connectionFactory){
redis.setKeySerializer(stringRedisSerializer); //创建RedisTemplate对象
// hash的key也采用String的序列化方式 RedisTemplate<String, Object> template = new RedisTemplate<>();
redis.setHashKeySerializer(stringRedisSerializer); //设置连接工厂
// value序列化方式采用jackson template.setConnectionFactory(connectionFactory);
redis.setValueSerializer(jackson2JsonRedisSerializer); //创建JSON序列化工具
// hash的value序列化方式采用jackson GenericJackson2JsonRedisSerializer jsonRedisSerializer=new GenericJackson2JsonRedisSerializer();
redis.setHashValueSerializer(jackson2JsonRedisSerializer); //设置Key的序列化
redis.afterPropertiesSet(); template.setKeySerializer(RedisSerializer.string());
return redis; template.setHashKeySerializer(RedisSerializer.string());
//设置value的序列化
template.setValueSerializer(jsonRedisSerializer);
template.setHashValueSerializer(jsonRedisSerializer);
//返回
return template;
} }
} }

25
app-service/src/main/java/com/depsystem/app/systemServer/util/RedisUtil.java

@ -9,7 +9,7 @@ package com.depsystem.app.systemServer.util;
import org.springframework.beans.factory.annotation.Autowired; import jakarta.annotation.Resource;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
@ -22,48 +22,55 @@ import java.util.concurrent.TimeUnit;
@Component @Component
public final class RedisUtil { public final class RedisUtil {
// private final RedisTemplate<String, Object> redisTemplate;
// private final RedisTemplate<String, Object> redisTemplate;
// //
// public RedisUtil(RedisTemplate<String, Object> rt ) { // public RedisUtil(RedisTemplate<String, Object> rt ) {
// this. redisTemplate = rt; // this. redisTemplate = rt;
// } // }
@Autowired @Resource
private RedisTemplate<String,Object> redisTemplate; private RedisTemplate<String,Object> redisTemplate;
public RedisUtil() {
}
/** /**
* 指定缓存失效时间 * 指定缓存失效时间
*
* @param key * @param key
* @param time 时间() * @param time 时间()
* @return * @return
*/ */
public boolean expire(String key, long time) { public Boolean expire(String key, long time) {
boolean exp = true;
try { try {
if (time > 0) { if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS); redisTemplate.expire(key, time, TimeUnit.SECONDS);
} }
return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return false; exp = false;
return exp;
} }
return exp;
} }
/** /**
* 根据key 获取过期时间 * 根据key 获取过期时间
*
* @param key 不能为null * @param key 不能为null
* @return 时间() 返回0代表为永久有效 * @return 时间() 返回0代表为永久有效
*/ */
public long getExpire(String key) { public Long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS); return redisTemplate.getExpire(key, TimeUnit.SECONDS);
} }
/** /**
* 判断key是否存在 * 判断key是否存在
*
* @param key * @param key
* @return true 存在 false不存在 * @return true 存在 false不存在
*/ */
public boolean hasKey(String key) { public Boolean hasKey(String key) {
try { try {
return redisTemplate.hasKey(key); return redisTemplate.hasKey(key);
} catch (Exception e) { } catch (Exception e) {

4
app-start/src/test/java/com/depsystem/app/AppApplicationTests.java

@ -149,8 +149,8 @@ class AppApplicationTests {
System.out.println("***************************************************"); System.out.println("***************************************************");
RedisUtil redisUtil = new RedisUtil(); RedisUtil redisUtil = new RedisUtil();
redisUtil.expire("a",60); redisUtil.expire("a",60);
long a = redisUtil.getExpire("a"); // long a = redisUtil.getExpire("a");
System.out.println(a); // System.out.println(a);
} }
} }

Loading…
Cancel
Save