此内容没有您所选择的语言版本。
6.3. Using an Advanced Externalizer
Using a customized advanced externalizer helps optimize performance in Red Hat JBoss Data Grid.
- Define and implement the
readObject()andwriteObject()methods. - Link externalizers with marshaller classes.
- Register the advanced externalizer.
6.3.1. Implement the Methods 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
To use advanced externalizers, define and implement the
readObject() and writeObject() methods. The following is a sample definition:
import org.infinispan.commons.marshall.AdvancedExternalizer;
public class Person {
final String name;
final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static class PersonExternalizer implements AdvancedExternalizer<Person> {
@Override
public void writeObject(ObjectOutput output, Person person)
throws IOException {
output.writeObject(person.name);
output.writeInt(person.age);
}
@Override
public Person readObject(ObjectInput input)
throws IOException, ClassNotFoundException {
return new Person((String) input.readObject(), input.readInt());
}
@Override
public Set<Class<? extends Person>> getTypeClasses() {
return Util.<Class<? extends Person>>asSet(Person.class);
}
@Override
public Integer getId() {
return 2345;
}
}
}
Note
This method does not require annotated user classes. As a result, this method is valid for classes where the source code is not available or cannot be modified.