
org.hibernate.examples.utils.BinarySerializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-examples Show documentation
Show all versions of hibernate-examples Show documentation
Hibernate 2nd level cache using Redis examples.
The newest version!
package org.hibernate.examples.utils;
import lombok.Cleanup;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
/**
* org.hibernate.examples.utils.BinarySerializer
*
* @author 배성혁 [email protected]
* @since 2013. 11. 28. 오후 5:34
*/
@Slf4j
public class BinarySerializer {
public byte[] serialize(Object graph) {
if (graph == null)
return ArrayUtils.EMPTY_BYTE_ARRAY;
try {
@Cleanup ByteArrayOutputStream bos = new ByteArrayOutputStream();
@Cleanup ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(graph);
oos.flush();
return bos.toByteArray();
} catch (Exception e) {
log.error("객체 직렬화에 실패했습니다. graph=" + graph, e);
throw new RuntimeException(e);
}
}
@SuppressWarnings("unchecked")
public T deserialize(byte[] bytes, Class clazz) {
if (ArrayUtils.isEmpty(bytes))
return (T) null;
try {
@Cleanup ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
@Cleanup ObjectInputStream ois = new ObjectInputStream(bis);
return (T) ois.readObject();
} catch (Exception e) {
log.error("객체 역직렬화에 실패했습니다.", e);
throw new RuntimeException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy