修改jfinal默認的redis序列化方式 原

jfinal 越來越流行, jfinal的redis插件默認的序列化方式是fst。 但是系統中其他項目中用的是spring data redis中的StringRedisTemplate,所有的value都是通過gson轉化成String放進去的。
直接用jfinal的redis插件去取的話會出現錯誤。所以需要對默認序列化方式進行修改。
代碼很簡單, 如下:

// 添加 redis 插件		
RedisPlugin redisPlugin = new RedisPlugin("xxx", "localhost");
redisPlugin.setSerializer(new ISerializer() {			
    @Override
    public byte[] keyToBytes(String key) {
        return SafeEncoder.encode(key);			
    }			
    @Override			
    public String keyFromBytes(byte[] bytes) {				
        return SafeEncoder.encode(bytes);			
    }			
    @Override			
    public byte[] fieldToBytes(Object field) {				
        return valueToBytes(field);			
    }			
    @Override			
    public Object fieldFromBytes(byte[] bytes) {				
        return valueFromBytes(bytes);			
    }			
    @Override			
    public byte[] valueToBytes(Object value) {				
        return SafeEncoder.encode(value.toString());			
    }			
    @Override			
    public Object valueFromBytes(byte[] bytes) {				
        if(bytes == null || bytes.length == 0)					
            return null;				
        return SafeEncoder.encode(bytes);			
    }		
});

代碼很簡單, 所以直接在config類裏面就寫了。 有特殊需求的同學可以根據這個思想繼續發揮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章