parent
e172074e15
commit
fb5f63a9de
16 changed files with 326 additions and 46 deletions
@ -0,0 +1,70 @@ |
||||
package com.lq.code.cache; |
||||
|
||||
import org.apache.shiro.cache.Cache; |
||||
import org.apache.shiro.cache.CacheException; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.data.redis.core.RedisTemplate; |
||||
|
||||
import java.util.Collection; |
||||
import java.util.Set; |
||||
|
||||
/** |
||||
* @Author: qi |
||||
* @Description: |
||||
* @Date: Create in 10:07 AM 2019/6/10 |
||||
*/ |
||||
public class RedisShiroCache<K,V> implements Cache<K,V>{ |
||||
|
||||
@Autowired |
||||
private RedisTemplate<K,V> redisTemplate; |
||||
|
||||
public RedisTemplate<K, V> getRedisTemplate() { |
||||
return redisTemplate; |
||||
} |
||||
|
||||
public void setRedisTemplate(RedisTemplate<K, V> redisTemplate) { |
||||
this.redisTemplate = redisTemplate; |
||||
} |
||||
|
||||
@Override |
||||
public V get(K k) throws CacheException { |
||||
|
||||
return redisTemplate.opsForValue().get(k); |
||||
} |
||||
|
||||
@Override |
||||
public V put(K k, V v) throws CacheException { |
||||
redisTemplate.opsForValue().set(k,v); |
||||
return v; |
||||
} |
||||
|
||||
@Override |
||||
public V remove(K k) throws CacheException { |
||||
V v = redisTemplate.opsForValue().get(k); |
||||
if (redisTemplate.delete(k)){ |
||||
return v; |
||||
} |
||||
|
||||
return v; |
||||
} |
||||
|
||||
@Override |
||||
public void clear() throws CacheException { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public int size() { |
||||
return 0; |
||||
} |
||||
|
||||
@Override |
||||
public Set<K> keys() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public Collection<V> values() { |
||||
return null; |
||||
} |
||||
} |
@ -0,0 +1,23 @@ |
||||
package com.lq.code.cache; |
||||
|
||||
import org.apache.shiro.cache.Cache; |
||||
import org.apache.shiro.cache.CacheException; |
||||
import org.apache.shiro.cache.CacheManager; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
||||
/** |
||||
* @Author: qi |
||||
* @Description: |
||||
* @Date: Create in 10:15 PM 2019/6/8 |
||||
*/ |
||||
public class RedisShiroManager implements CacheManager { |
||||
|
||||
@Autowired |
||||
private RedisShiroCache redisShiroCache; |
||||
|
||||
@Override |
||||
public <K, V> Cache<K, V> getCache(String s) throws CacheException { |
||||
|
||||
return redisShiroCache; |
||||
} |
||||
} |
@ -0,0 +1,55 @@ |
||||
package com.lq.code.dto; |
||||
|
||||
import com.github.jsonzou.jmockdata.JMockData; |
||||
import com.lq.entity.SysUser; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.concurrent.ThreadPoolExecutor; |
||||
|
||||
/** |
||||
* @Author: qi |
||||
* @Description:自定义队列 |
||||
* @Date: Create in 9:23 AM 2019/6/3 |
||||
*/ |
||||
public class QueueDto<T> { |
||||
|
||||
private List<T> list; |
||||
|
||||
private int index; |
||||
|
||||
public QueueDto() { |
||||
this.list = new ArrayList<>(); |
||||
} |
||||
|
||||
public QueueDto(int size) { |
||||
this.list = new ArrayList<>(size); |
||||
} |
||||
|
||||
public void add(T t){ |
||||
list.add(t); |
||||
index++; |
||||
} |
||||
|
||||
public synchronized T pop(){ |
||||
T t = null; |
||||
index--; |
||||
if (hasNext()) { |
||||
t = list.get(index); |
||||
} |
||||
return t; |
||||
} |
||||
|
||||
/** |
||||
* 判断是否还有元素存在 |
||||
* @return |
||||
*/ |
||||
public boolean hasNext(){ |
||||
boolean result = true; |
||||
if (index==0){ |
||||
result = false; |
||||
} |
||||
return result; |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue