采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
这里提示需要构造器,老师给出的代码中并未提及。请问这里的构造器怎么写呢?
同学您好,构造器不需要写,这里它会自动去注入的哈,因为Strings和Keys是Jedis的内部类,所以需要先new出这个jedisUtil来,因此需要用到这个构造函数创建出外部类,但是不需要写入,以下是我的代码
package com.imooc.o2o.cache; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.util.SafeEncoder; public class JedisUtil { /** * 缓存生存时间 */ private final int expire = 60000; /** 操作Key的方法 */ public Keys KEYS; /** 对存储结构为String类型的操作 */ public Strings STRINGS; /** Redis连接池对象 */ private JedisPool jedisPool; /** * 获取redis连接池 * * @return */ public JedisPool getJedisPool() { return jedisPool; } /** * 设置redis连接池 * * @return */ public void setJedisPool(JedisPoolWriper jedisPoolWriper) { this.jedisPool = jedisPoolWriper.getJedisPool(); } /** * 从jedis连接池中获取获取jedis对象 * * @return */ public Jedis getJedis() { return jedisPool.getResource(); } // *******************************************Keys*******************************************// public class Keys { /** * 清空所有key */ public String flushAll() { Jedis jedis = getJedis(); String stata = jedis.flushAll(); jedis.close(); return stata; } /** * 删除keys对应的记录,可以是多个key * * @param String * ... keys * @return 删除的记录数 */ public long del(String... keys) { Jedis jedis = getJedis(); long count = jedis.del(keys); jedis.close(); return count; } /** * 判断key是否存在 * * @param String * key * @return boolean */ public boolean exists(String key) { // ShardedJedis sjedis = getShardedJedis(); Jedis sjedis = getJedis(); boolean exis = sjedis.exists(key); sjedis.close(); return exis; } /** * 查找所有匹配给定的模式的键 * * @param String * key的表达式,*表示多个,?表示一个 */ public Set<String> keys(String pattern) { Jedis jedis = getJedis(); Set<String> set = jedis.keys(pattern); jedis.close(); return set; } } // *******************************************Strings*******************************************// public class Strings { /** * 根据key获取记录 * * @param String * key * @return 值 */ public String get(String key) { // ShardedJedis sjedis = getShardedJedis(); Jedis sjedis = getJedis(); String value = sjedis.get(key); sjedis.close(); return value; } /** * 添加记录,如果记录已存在将覆盖原有的value * * @param String * key * @param String * value * @return 状态码 */ public String set(String key, String value) { return set(SafeEncoder.encode(key), SafeEncoder.encode(value)); } /** * 添加记录,如果记录已存在将覆盖原有的value * * @param byte[] * key * @param byte[] * value * @return 状态码 */ public String set(byte[] key, byte[] value) { Jedis jedis = getJedis(); String status = jedis.set(key, value); jedis.close(); return status; } } }
同学周末愉快
他一直报错 怎么解决啊!!!
请问同学报的什么错 还有注意pom.xml里的jar包要引全
老师您好,我也碰到了和楼主一模一样的错误,看到了您的回答。但是恕学生水平太浅,没有看懂老师的回答,能请老师再细致点说说吗? 1.这里报错的地方是spring-redix.xml文件,您所说的new出这个jedisUtil,指的是哪里? 2.您指的不需要写构造器,我是否可以理解成spring通过自动注入的方式自动生成了key和string两个类,相当于通过构造函数创建出了外部类 3.这里的错误要如何解决我仍然没有弄懂
登录后可查看更多问答,登录/注册
SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需
2.0k 47
1.9k 41
2.5k 40
1.9k 39
1.5k 37