tutorial java gwt gwt-rpc

java - tutorial - ¿Cuál es el propósito de la interfaz IsSerializable en GWT(con respecto al mecanismo RPC)?



gwt json (2)

Si comparte sus objetos con otros programas, utilice Serializable, ya que es una función de biblioteca java estándar.

Pero si solo quiere pasarlo entre el Servidor y el cliente en GWT, use IsSerializable . Le ayuda a asegurarse de no habilitar para comenzar a pasarlo a lugares a los que no debería ir.

¿Cuál es el propósito de la interfaz IsSerializable en GWT (con respecto al mecanismo RPC)? Nunca he podido encontrar una buena explicación de por qué es así y por qué la interfaz de etiquetado de Java Serializable predeterminada no funciona.


Tanto el trabajo Serializable como el IsSerializable , de acuerdo con los documentos de serialización de GWT :

Una clase definida por el usuario es serializable si se aplica todo lo siguiente:

  1. Es asignable a IsSerializable o Serializable, ya sea porque implementa directamente una de estas interfaces o porque se deriva de una superclase que sí lo hace.
  2. Todos los campos de instancia no finales, no transitorios son en sí mismos serializables, y
  3. A partir de GWT 1.5, debe tener un constructor predeterminado (argumento cero) (con cualquier modificador de acceso) o ningún constructor en absoluto.

Sin embargo, una diferencia clave es que, por razones de seguridad, todas las clases Serializable deben incluirse en una política de serialización, que se genera en el momento de la compilación, mientras que IsSerializable clases IsSerializable no tienen ese requisito.

Si su interés es exclusivamente GWT, y no comparte, por ejemplo, sus clases modelo entre la aplicación web y otra aplicación, le sugiero que haga que sus clases modelo / DTO implementen IsSerializable .