可用于redis存储(序列化对象),取出(反序列化对象)
public class SerializeUtil {
public static byte[] serializeObj(Object obj){
ObjectOutputStream oos = null ;
ByteArrayOutputStream baos = null ;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
byte[] bytes = baos.toByteArray();
return bytes ;
} catch (IOException e) {
System.out.println(8);
return null;
}
}
public static Object unserializeObj(byte[] bytes){
ByteArrayInputStream bais = null;
try {
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais) ;
return ois.readObject();
} catch (Exception e) {
return null ;
}
}
}
redis中的方法:
/**
* 存入对象到redis中
* @param key
* @param obj
* @return
*/
public static Boolean set(final String key,final Object obj){
boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
connection.set(key.getBytes(),SerializeUtil.serializeObj(obj));
return true;
}
});
return result;
}
/**
* 获取redis中的对象
* @param key
* @return
*/
public static String get(final String key){
String result = redisTemplate.execute(new RedisCallback<String>() {
public String doInRedis(RedisConnection connection) throws DataAccessException {
byte[] result = connection.get(key.getBytes()) ;
if (null == result || null == SerializeUtil.unserializeObj(result)) {
return "";
}
return result == null ? "" : SerializeUtil.unserializeObj(result).toString();
}
});
return result;
}