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

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

@ -1,45 +1,32 @@ @@ -1,45 +1,32 @@
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.Configuration;
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.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.net.UnknownHostException;
@Configuration
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();
// key采用String的序列化方式
redis.setKeySerializer(stringRedisSerializer);
// hash的key也采用String的序列化方式
redis.setHashKeySerializer(stringRedisSerializer);
// value序列化方式采用jackson
redis.setValueSerializer(jackson2JsonRedisSerializer);
// hash的value序列化方式采用jackson
redis.setHashValueSerializer(jackson2JsonRedisSerializer);
redis.afterPropertiesSet();
return redis;
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory connectionFactory){
//创建RedisTemplate对象
RedisTemplate<String, Object> template = new RedisTemplate<>();
//设置连接工厂
template.setConnectionFactory(connectionFactory);
//创建JSON序列化工具
GenericJackson2JsonRedisSerializer jsonRedisSerializer=new GenericJackson2JsonRedisSerializer();
//设置Key的序列化
template.setKeySerializer(RedisSerializer.string());
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; @@ -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;
@ -22,48 +22,55 @@ import java.util.concurrent.TimeUnit; @@ -22,48 +22,55 @@ import java.util.concurrent.TimeUnit;
@Component
public final class RedisUtil {
// private final RedisTemplate<String, Object> redisTemplate;
// private final RedisTemplate<String, Object> redisTemplate;
//
// public RedisUtil(RedisTemplate<String, Object> rt ) {
// this. redisTemplate = rt;
// }
@Autowired
@Resource
private RedisTemplate<String,Object> redisTemplate;
public RedisUtil() {
}
/**
* 指定缓存失效时间
*
* @param key
* @param time 时间()
* @return
*/
public boolean expire(String key, long time) {
public Boolean expire(String key, long time) {
boolean exp = true;
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
exp = false;
return exp;
}
return exp;
}
/**
* 根据key 获取过期时间
*
* @param key 不能为null
* @return 时间() 返回0代表为永久有效
*/
public long getExpire(String key) {
public Long getExpire(String key) {
return redisTemplate.getExpire(key, TimeUnit.SECONDS);
}
/**
* 判断key是否存在
*
* @param key
* @return true 存在 false不存在
*/
public boolean hasKey(String key) {
public Boolean hasKey(String key) {
try {
return redisTemplate.hasKey(key);
} catch (Exception e) {

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

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

Loading…
Cancel
Save