Srs, boa tarde!
Eu observei que nessa aula a classe LivroBean tem uma interface apontada para classe Serializable. Eu não lembro de haver comentários sobre isso no vídeo. Alguém sabe dizer qual o motivo desse relacionamento?
Obrigado.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Srs, boa tarde!
Eu observei que nessa aula a classe LivroBean tem uma interface apontada para classe Serializable. Eu não lembro de haver comentários sobre isso no vídeo. Alguém sabe dizer qual o motivo desse relacionamento?
Obrigado.
Olá Leandro, quando o escopo do seu ManagedBean é diferente de request, ele precisa implementar Serializable. O JSF até tolera sua não implementação, mas se for usar CDI sequer seu código compilará? Qual o motivo disso? Bem, se está em escopo de request, a cada requisição um novo bean será criado, logo, não precisamos nos preocupar em guardá-lo em algum lugar para ficar vivo. Porém, se o escopo dele é maior do que request (SessionScoped ou ApplicationScoped) esse bean terá que ser armazenado em algum lugar para que seja possível recuperá-lo depois. Que lugar é esse? Pode variar de servidor para servidor, mas no final você quer é serializar esse objeto em algum lugar (disco, txt, session, etc.) e depois deserializa-lo. A interface Serializable é uma interface de marcação, serve apenas para dizer que aquele objeto pode ser serializado. Lembro até hoje com RichFace 3.X que havia um componente que não implementava Serializable e quando o servidor tentava serializar a sua view eu recebia "NotSerializableException".
Espero ter ajudado!
Flávio, bom dia!
Sim. Agora está claro. Obrigado.
Beleza Leandro! Se tiver mais dúvidas, não deixe de postar no forum :) Abraço!
Flavio, combinado.