¿Es necesario que un Java Bean implemente la interfaz Serializable
?¿Por qué Java Beans tiene que ser serializable?
Respuesta
Es una de las características "típicas" descritas en el Javabeans specification.
Aquí hay un extracto del capítulo 2.1 ¿Qué es un frijol?
Frijolesindividual Java variará de la funcionalidad que apoyan, pero los rasgos unificadores típicos que distinguen a un Java Bean son:
- El apoyo a la “introspección”, por lo que una herramienta constructor puede analizar cómo un bean funciona
- Soporte para "personalización" de modo que cuando se usa un generador de aplicaciones, un usuario puede personalizar el aspecto y el comportamiento de un bean.
- Soporte para "eventos" como una metáfora de comunicación simple que se puede utilizar para conectar hasta frijoles.
- Compatibilidad con "propiedades", tanto para personalización como para uso programático.
- Compatibilidad con la persistencia, para que un bean se pueda personalizar en un generador de aplicaciones y y luego se guarde su estado personalizado y se vuelva a cargar más tarde.
Y aquí es un extracto del capítulo 5.5 Resumen de Persistencia:
Todos los granos deben ser compatibles con cualquiera de serialización o externalización.
En la práctica, no es explícitamente necesario para que funcione. En general, también funcionará bien sin implementar Serializable
. Sin embargo, es útil siempre que quiera almacenarlos "sin formato" en el disco duro o enviar "sin formato" a través de la red. Por ejemplo, cuando se trata de un bean con ámbito de sesión que debe almacenarse en la sesión HTTP y el servidor se confunde para mantener y reanudar las sesiones HTTP durante el apagado/reinicio. De cualquier modo, cada vez que se enfrente a un NotSerializableException
con el nombre de clase calificado del bean en el mensaje, entonces es señal suficiente para permitir que implemente Serializable
.
Sí.
Por definición, un bean Java es exactamente eso, un serializable POJO (simple objeto Java antiguo), con un constructor sin argumentos y campos privados con getters/setters.
- 1. ¿Por qué HttpServlet en Java implementa serializable?
- 2. ¿Por qué HttpServlet implementa Serializable?
- 3. ¿Por qué una clase interna serializable no es serializable?
- 4. ¿Qué es Serializable en Java?
- 5. ¿Por qué debería un Comparador implementar Serializable?
- 6. ¿Por qué AtomicInteger implementa Serializable
- 7. ¿Por qué tiene que marcar una clase con el atributo [serializable]?
- 8. ¿Por qué las interfaces no son [Serializable]?
- 9. ¿Por qué Java.lang.Object no implementa la interfaz serializable?
- 10. ¿Por qué java.util.List no implementa Serializable?
- 11. Serializar un objeto que tiene una clase primaria no serializable
- 12. Django: "TypeError: [] no es serializable por JSON" ¿Por qué?
- 13. ¿cómo funciona serializable en Java?
- 14. ¿SwingWorker tiene que ser una clase anidada?
- 15. En Java, ¿por qué deben equals() y hashCode() ser consistentes?
- 16. elevación con enterprise java beans
- 17. ¿Por qué tiene que sangrarse COBOL?
- 18. Incrustar Python en Windows: ¿por qué tiene que ser una DLL?
- 19. div interior tiene que ser 100% Altura
- 20. subclase de la clase Serializable padre que no serializable
- 21. generar beans Java con clojure
- 22. ¿Por qué es necesario marcar una clase como serializable?
- 23. java @SafeVarargs por qué los métodos privados deben ser finales
- 24. ¿Por qué variables de Java ThreadLocal ser estática
- 25. java: ¿Por qué la variable local debe ser declarada definitiva
- 26. ¿Por qué agrupar beans de sesión sin estado?
- 27. Java Beans: ¿Arrays asociativos sobreglorificados?
- 28. ¿Por qué una enum de Java no puede ser definitiva?
- 29. ¿Por qué java tiene los archivos cacerts y jssecacerts?
- 30. ¿Por qué siempre debo hacer mis Excepciones [serializable]? (NET)
¿Qué pasa con los beans 'ApplicationScoped', ¿deberían implementar la interfaz Serializable? –