Java es un lenguaje de programación versátil y potente que ha ganado una amplia popularidad en la comunidad de desarrollo de software. Una de las razones detrás de su éxito es la capacidad de ejecutar Java en varias plataformas diferentes. Sin embargo, es importante comprender las diferencias entre las distintas plataformas de Java para aprovechar al máximo este lenguaje:
Durante 1º, utilizamos básicamente JSE, que viene incluido en JDK. Ahora, necesitamos añadir más funcionalidad para crear webs, API Rest… Por lo tanto, vamos a utilizar, además, JEE, o Jakarta EE, que es como se le conoce ahora.
Jakarta EE (anteriormente conocida como Java Enterprise Edition o JEE) es una plataforma de desarrollo empresarial que ofrece un conjunto de especificaciones y bibliotecas para construir y desplegar aplicaciones empresariales en Java. Jakarta EE se basa en las tecnologías y estándares de JEE, que han sido desarrollados y evolucionados a lo largo de los años por la comunidad de desarrolladores y diversas organizaciones.
La plataforma Jakarta EE proporciona un conjunto de APIs y servicios para el desarrollo de aplicaciones empresariales robustas y escalables. Estas aplicaciones suelen requerir características avanzadas como transacciones distribuidas, seguridad, comunicación en red, servicios web, acceso a bases de datos y gestión de componentes, entre otros.
Una de las características clave de Jakarta EE es su enfoque modular y extensible. Permite a los desarrolladores elegir las especificaciones y tecnologías que necesitan para sus aplicaciones, lo que evita la sobrecarga de funcionalidades innecesarias. Además, Jakarta EE se puede implementar en varios servidores de aplicaciones compatibles, lo que brinda flexibilidad y portabilidad en el despliegue de las aplicaciones.
En 2017, la plataforma Java EE fue transferida a la Fundación Eclipse y renombrada como Jakarta EE como resultado de un proceso comunitario. Esta transición tuvo como objetivo fortalecer la colaboración y la apertura en el desarrollo de la plataforma, permitiendo una mayor participación de la comunidad y garantizando su evolución continua.
En resumen, Jakarta EE es una plataforma de desarrollo empresarial basada en Java que proporciona un conjunto de especificaciones y bibliotecas para la construcción de aplicaciones empresariales robustas y escalables. Es conocida por su modularidad, extensibilidad y capacidad de implementación en varios servidores de aplicaciones. Jakarta EE continúa evolucionando gracias a la colaboración de la comunidad de desarrolladores y la Fundación Eclipse.
Jakarta está compuesta por un conjunto de especificaciones, entre las cuales están:
Un POJO se caracteriza por lo siguiente:
Un Java Bean típicamente cumple con las siguientes características:
Jakarta EE, como hemos visto, es un conjunto de especificaciones para varias tecnologías. A partir de ahí, los fabricantes crean sus propias implementaciones siguiendo las reglas de las diferentes APIS, por ejemplo:
En realidad, cuando hacemos una aplicación Java utilizamos esas implementaciones (Hibernate, Jersey…), no las especificaciones de Jakarta.
Spring es un framework de desarrollo de aplicaciones Java que ofrece un enfoque alternativo y más ligero para el desarrollo de aplicaciones empresariales en comparación con Jakarta EE. Aunque Spring se basó inicialmente en las tecnologías de Java EE, ha evolucionado de manera independiente y ha introducido sus propias abstracciones y conceptos.
Sin embargo, a partir de la versión 3.0, Spring adoptó un enfoque más modular y comenzó a alinearse más estrechamente con los estándares de Java EE y Jakarta EE. En lugar de depender completamente de la plataforma Java EE completa, Spring adoptó un enfoque más granular, permitiendo a los desarrolladores elegir las tecnologías específicas que desean utilizar en sus aplicaciones. Por ejemplo, Spring puede integrarse fácilmente con implementaciones de servlets y contenedores de aplicaciones compatibles con Jakarta EE.
Spring y Jakarta EE pueden coexistir en una aplicación y utilizarse de forma complementaria según las necesidades del proyecto. Spring proporciona muchas características y soluciones adicionales que no están disponibles en Jakarta EE, como el soporte para inyección de dependencias, programación declarativa, pruebas unitarias y soporte para integración con otros sistemas. Al mismo tiempo, Jakarta EE ofrece un conjunto sólido de tecnologías y estándares para el desarrollo de aplicaciones empresariales.
Spring Boot es un proyecto dentro del ecosistema de Spring Framework que simplifica y agiliza el desarrollo de aplicaciones Java. Se basa en los principios de Spring, pero proporciona características adicionales para facilitar la configuración y el despliegue de aplicaciones. Algunas de sus características son:
En general, Spring Boot permite desarrollar aplicaciones Java de manera más rápida y sencilla al proporcionar una configuración inteligente, herramientas de despliegue simplificadas y una integración perfecta con Spring Framework. Facilita el desarrollo de aplicaciones robustas y escalables, al tiempo que reduce la carga de configuración manual y el tiempo de desarrollo.
Durante el curso, vamos a utilizar Spring Boot para crear nuestras aplicaciones web.