Qual é o propósito da interface IsSerializable no GWT (em relação ao mecanismo RPC)

StackOverflow https://stackoverflow.com/questions/3065135

  •  28-09-2019
  •  | 
  •  

Pergunta

Qual é o propósito da interface IsSerializable no GWT (em relação ao mecanismo RPC).Nunca consegui encontrar uma boa explicação de por que é assim e por que a interface de marcação Java Serializable padrão não funciona.

Foi útil?

Solução

Ambos Serializable e IsSerializable trabalho, de acordo com Documentos de serialização do GWT:

Uma classe definida pelo usuário é serializável se todas as condições a seguir se aplicarem:

  1. É atribuível a IsSerializable ou Serializable, seja porque implementa diretamente uma dessas interfaces ou porque deriva de uma superclasse que não
  2. Todos os campos de instância não finais e não transitórios são serializáveis ​​e
  3. A partir do GWT 1.5, ele deve ter um construtor padrão (argumento zero) (com qualquer modificador de acesso) ou nenhum construtor.

Uma diferença fundamental, porém, é que, por razões de segurança, todos Serializable classes devem ser incluídas em uma política de serialização, que é gerada em tempo de compilação, enquanto IsSerializable as aulas não têm esse requisito.

Se o seu interesse é puramente no GWT e você não por exemplo. compartilhe suas classes de modelo entre o aplicativo da web e outro aplicativo, sugiro que você implemente suas classes de modelo/DTOs IsSerializable.

Outras dicas

Se você compartilhar seus objetos com outros programas, use Serializável Como é uma função de biblioteca Java padrão,

Mas se você quiser passar apenas entre o servidor e o cliente no GWT, use Emissorizável. Ajuda a garantir que você não permita começar a passá -lo para lugares que não deve ir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top