JFinal2.0中RedisPlugin源码导读

JFinal2.0中自带集成了Redis插件,为开发者提供了更多的便利,下面我就带你来看看RedisPlugin的相关源码。

serializer包中,包含有Jdk序列化和Fst序列化,默认为Fst序列化。

如果你不想使用Fst序列化或者不想导如这个包,可以设置默认序列化为JDK!

redisPlugin.setSerializer(JdkSerializer.me);

key的生成规则

 * IKeyNamingPolicy.
 * 架构师可以通过实现此类制定全局性的 key 命名策略,
 * 例如 Integer、String、OtherType 这些不同类型的对象
 * 选择不同的命名方式,默认命名方式是  Object.toString()

RedisInterceptor

 * RedisInterceptor 用于在同一线程中共享同一个 jedis 对象,提升性能.
 * 目前只支持主缓存 mainCache,若想更多支持,参考此拦截器创建新的拦截器
 * 改一下Redis.use() 为 Redis.use(otherCache) 即可
/**
 * 当RedisPlugin 提供的设置属性仍然无法满足需求时,通过此方法获取到
 * JedisPoolConfig 对象,可对 redis 进行更加细致的配置
 * <pre>
 * 例如:
 * redisPlugin.getJedisPoolConfig().setMaxTotal(100);
 * </pre>
 */
public JedisPoolConfig getJedisPoolConfig() {
	return jedisPoolConfig;
}

看到jedis.close();这块我也产生了疑惑,为什么那里直接用了close呢?

点进源码一看,果真发现了真谛

@Override
public void close() {
  if (dataSource != null) {
    if (client.isBroken()) {
      this.dataSource.returnBrokenResource(this);
    } else {
      this.dataSource.returnResource(this);
    }
  } else {
    client.close();
  }
}

JFinal果真是最赞的,市面上不少代码欺骗了我们。

JFinal2.0的文档中有对RedisPlugin使用的简单介绍。如果你想了解更多,打开源码来发现吧。

捐助共勉
版权声明:若无特殊注明,本文皆为原创,转载请保留文章出处。