遇到问题
新公司项目中使用了Jedis,代码中铺天盖地的try...finaly{jedis.close()},不仅不美观,还很容易忘记封装try块,导致jedis资源消耗殆尽!
解决问题
利用Java8的函数式接口(FunctionalInterface)将getJedis进一步封装:
封装
public static T useJedis(Function function) {
try (Jedis jedis = redisDS.getJedis()) {
return function.apply(jedis);
}
}
调用
String result = JedisUtils.useJedis(jedis -> {
return jedis.get(key);
});
最后
个人简单理解,不对之处还望指正!