1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.caches.redis;
17
18 import java.io.ByteArrayInputStream;
19 import java.io.ByteArrayOutputStream;
20 import java.io.ObjectInputStream;
21 import java.io.ObjectOutputStream;
22
23 import org.apache.ibatis.cache.CacheException;
24
25 public enum JDKSerializer implements Serializer {
26
27 INSTANCE;
28
29 private JDKSerializer() {
30
31 }
32
33 @Override
34 public byte[] serialize(Object object) {
35 try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
36 ObjectOutputStream oos = new ObjectOutputStream(baos)) {
37 oos.writeObject(object);
38 return baos.toByteArray();
39 } catch (Exception e) {
40 throw new CacheException(e);
41 }
42 }
43
44 @Override
45 public Object unserialize(byte[] bytes) {
46 if (bytes == null) {
47 return null;
48 }
49 try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
50 ObjectInputStream ois = new ObjectInputStream(bais)) {
51 return ois.readObject();
52 } catch (Exception e) {
53 throw new CacheException(e);
54 }
55 }
56
57 }