문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
java:kryo [2015/06/22 17:08] kwon37xi [기본 생성자(No args constructor)가 없을 경우] |
java:kryo [2016/01/08 20:20] kwon37xi [기본 생성자(No args constructor)가 없을 경우] |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Kryo - Java 직렬화(Serialization) ====== | ====== Kryo - Java 직렬화(Serialization) ====== | ||
- | * http://code.google.com/p/kryo/ | + | * https://github.com/EsotericSoftware/kryo |
* Java 객체 직렬화 솔루션. | * Java 객체 직렬화 솔루션. | ||
* Java Serialization의 단점인 서로 다른 버전의 직렬화를 더 잘 지원하는듯. | * Java Serialization의 단점인 서로 다른 버전의 직렬화를 더 잘 지원하는듯. | ||
줄 93: | 줄 93: | ||
* 순수 Kryo만 사용할 때는 objenesis의 '' | * 순수 Kryo만 사용할 때는 objenesis의 '' | ||
Kryo kryo = new Kryo(); | Kryo kryo = new Kryo(); | ||
+ | |||
+ | // 먼저 기본 생성자로 객체 생성을 시도하고, | ||
+ | // 실패시에 생성자 없이 객체 생성시도하는 설정. | ||
kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy())); | kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy())); | ||
</ | </ | ||
줄 101: | 줄 104: | ||
</ | </ | ||
+ | ===== Enum ===== | ||
+ | Kryo 기본적으로 Enum을 ordinal로 직렬화한다. 이 경우 Enum의 순서가 변경되면 문제가 발생한다. | ||
+ | '' | ||
+ | <code java> | ||
+ | kryo.addDefaultSerializer(Enum.class, | ||
+ | </ |