Java es un lenguaje robusto y cuando se combina con un framework, Java puede proporcionar las mejores soluciones para cualquier dominio, ya sea un comercio electr贸nico, la computaci贸n en la nube, las finanzas, el big data, el mercado de valores, las TI y mucho m谩s.

Si reci茅n est谩s comenzando con Java, vea Java en vivo en acci贸n en este blog que te guiar谩 a trav茅s de todos los conceptos m谩s importantes que necesitas saber para comenzar a trabajar con los frameworks Java.

MEN脷 馃憞


驴Qu茅 son los frameworks de Java?

Un cuerpo de c贸digo preescrito que act煤a como una plantilla o esqueleto, que un desarrollador puede usar y reutilizar para crear una aplicaci贸n completando su c贸digo seg煤n sea necesario para que la aplicaci贸n funcione como se pretende que se denomine Framework.

La reutilizaci贸n de frameworks permite a los desarrolladores programar su aplicaci贸n sin la sobrecarga manual de crear cada l铆nea de c贸digo desde cero.

Un framework de trabajo Java es espec铆fico del lenguaje de programaci贸n Java, utilizado como plataforma para desarrollar aplicaciones de software y programas Java.

Los frameworks de trabajo de Java pueden incluir clases y funciones predefinidas utilizadas para procesar, ingresar y administrar dispositivos de hardware, as铆 como interactuar con el software del sistema.

Depende del tipo de framework, el nivel de habilidad del programador, lo que est谩 tratando de lograr y sus preferencias.

驴Por qu茅 usar un framework Java?

Los frameworks dan una estructura a sus aplicaciones. Por ejemplo, si tenemos un framework adecuado para las pruebas, podemos automatizar muchas cosas y obtener resultados precisos y consistentes.

De la misma manera, si existen frameworks para ORM, aplicaciones web, registro, gesti贸n de datos, etc., simplificar谩 la vida de un desarrollador y le ayudar谩 a concentrarse m谩s en la l贸gica de negocios en lugar de preocuparse por las piezas de c贸digo comunes utilizadas en un dominio o aplicaci贸n.

10 mejores frameworks de Java

Aunque hay muchos frameworks construidos en Java, aqu铆 hay algunos frameworks de los m谩s utilizados entre los diferentes tipos:

  • Aplicaciones web, aplicaciones de red, registro, pruebas, ORM, etc.

Tenga en cuenta que cada uno de estos tiene sus propios beneficios y puede funcionar mejor para diferentes usos comerciales, casos de uso, y no se puede decir cu谩l es mejor, porque todos son buenos en diferentes escenarios.

Spring Struts Hibernate Apache Wicket Java Server Faces Dropwizard Grails ATG Play Apache Hadoop

馃敟 Seguro tambi茅n te interesa: mejores libros de programaci贸n聽禄 programas para desarrolladores聽禄 mejores lenguajes de programaci贸n聽禄 mejores auriculares para programadores聽禄 ratones verticales para trabajar聽禄 componentes de PC para programadores聽禄 mejores regalos 1 - 馃摝聽禄 mejores regalos 2 - 馃巵

1. Spring

Logotipo oficial del framework Java: Spring

Con su concepto de inyecci贸n de dependencias y funciones de programaci贸n orientadas a aspectos, Spring asalto el mundo del desarrollo. Es un framework de c贸digo abierto utilizado para aplicaciones empresariales.

Con Spring, los desarrolladores pueden crear m贸dulos acoplados libremente donde las dependencias son manejadas por el framework en lugar de depender de las bibliotecas del c贸digo.

Spring Framework es exhaustivo y cubre muchas caracter铆sticas, incluida la seguridad y la configuraci贸n, que son f谩ciles de aprender. Adem谩s, dado que es el framework web m谩s popular, puedes encontrar mucha documentaci贸n y una comunidad activa.

Con todo configurado, su c贸digo ser谩 limpio y f谩cil de comprender.

Conceptos principales de Spring

  • Inyecci贸n de dependencia (DI) (Inversi贸n de control): en este principio, en lugar de que la aplicaci贸n tome el control del flujo secuencialmente, le da el control a un controlador externo que controla el flujo. El controlador externo son los eventos. Cuando ocurre alg煤n evento, el flujo de la aplicaci贸n contin煤a. Esto le da flexibilidad a la aplicaci贸n. En Spring, IoC se realiza mediante DI, que son de tres tipos: inyecci贸n de setter, inyecci贸n de m茅todo e inyecci贸n de constructor.
  • Beans y Spring Context: en Spring, los objetos se denominan beans y hay un BeanFactory que gestiona y configura estos beans. Puedes pensar en beanfactory como un contenedor que crea instancias, configura y administra las beans. La mayor铆a de las aplicaciones usan xml (beans.xml) para la configuraci贸n. ApplicationContext, que utiliza un superconjunto de BeanFactory para aplicaciones m谩s complejas que necesitan propagaci贸n de eventos, mecanismos declarativos e integraci贸n con caracter铆sticas orientadas a aspectos de Spring.
  • Puedes leer sobre algunos conceptos m谩s importantes de Spring.

馃捇 Framework Spring 馃搼 Documentaci贸n Spring Framework 馃敐 Volver al Inicio 馃敐

2. Struts

Logotipo oficial del framework Java: Struts

Apache Struts es otro framework robusto de c贸digo abierto para aplicaciones web. Sigue el modelo MVC (Modelo-Vista-Controlador) y extiende la API JSP.

En un enfoque tradicional de servlet-JSP, si un usuario env铆a, digamos un formulario con sus detalles, la informaci贸n se env铆a a un servlet para su procesamiento o el control pasa al siguiente JSP (Java Server Pages, donde puede escribir c贸digo Java en un HTML).

Esto se vuelve confuso para aplicaciones complejas, ya que la 鈥榁ista鈥 o la capa de presentaci贸n idealmente no deber铆an tener l贸gica empresarial.

Los Struts separan la Vista, el Controlador y el Modelo (datos) y proporcionan el enlace entre cada uno a trav茅s de un archivo de configuraci贸n struts-config.xml.

El controlador es un ActionServlet donde puede escribir plantillas para la Vista y los datos del usuario se mantienen utilizando ActionForm JavaBean. El objeto Action es responsable de reenviar el flujo de la aplicaci贸n.

La vista es mantenida por un rico conjunto de bibliotecas de etiquetas.

Los puntales son f谩ciles de configurar y proporcionan mucha m谩s flexibilidad y extensibilidad sobre el enfoque tradicional de MVC utilizando servlets y JSP solo; puede ser un buen punto de partida para su carrera como desarrollador web.

馃捇 Framework Struts 馃搼 Documentaci贸n Struts Framework 馃敐 Volver al Inicio 馃敐

3. Hibernate

Logotipo oficial del framework Java: Hibernate

Aunque Hibernate no es un framework completo, cambi贸 por completo la forma en que miramos la base de datos. Implementaci贸n de Java Persistence API (JPA), Hibernate es una base de datos Object-Relational-Mapping (ORM) para aplicaciones Java. Al igual que SQL, las consultas en Hibernate se llaman HQL (Hibernate Query Language).

Hibernate asigna directamente las clases de Java a las tablas de bases de datos correspondientes y viceversa.

El archivo principal en hibernate es el archivo hibernate.cfg.xml que contiene informaci贸n sobre la asignaci贸n de clases Java con la configuraci贸n de la base de datos.

Hibernate resuelve los dos problemas principales con JDBC: JDBC no admite la relaci贸n a nivel de objeto y si alguna vez decide migrar a una base de datos diferente, las consultas anteriores pueden no funcionar, lo que significa muchos cambios, 隆es decir, tiempo y dinero!

Hibernate proporciona una capa de abstracci贸n para que el c贸digo se acople libremente con la base de datos. Cosas como establecer una conexi贸n de base de datos, Hibernate se encarga de realizar operaciones CRUD, por lo que los desarrolladores no necesitan implementar eso, por lo tanto, hacen que el c贸digo sea independiente de la base de datos utilizada.

馃捇 Framework Hibernate 馃搼 Documentaci贸n Hibernate Framework 馃敐 Volver al Inicio 馃敐

4. Apache Wicket

Logotipo oficial del framework Java: Apacke Wicket

Si ya ha trabajado con JSP, el wicket de aprendizaje ser谩 un juego de ni帽os. Wicket, un framework de aplicaciones web simple, tiene una estructura orientada a componentes y todo lo que necesita saber es Java y HTML. 隆Absolutamente ning煤n XML o archivos de configuraci贸n!

La caracter铆stica principal de Wicket es su modelo POJO en el que los componentes son objetos Java simples (simples) que tienen caracter铆sticas OOP. Estos componentes se agrupan como paquetes reutilizables con im谩genes, botones, formularios, enlaces, p谩ginas, contenedores, comportamientos y m谩s para que los desarrolladores puedan personalizarlos.

Wicket es liviano y puedes crear aplicaciones realmente r谩pido. Tambi茅n es f谩cil unir el c贸digo de prueba escrito en Wicket.

馃捇 Framework Apache Wicket 馃搼 Documentaci贸n Apache Wicket Framework 馃敐 Volver al Inicio 馃敐

5. Java Server Faces

Logotipo oficial del framework Java: Server Faces

No confunda JSF con JSP, que es solo un documento de texto que puede tener contenido est谩tico y din谩mico. Oracle desarrolla JSF como parte de Java Enterprise Edition 7.

Es un framework MVC basado en componentes y tiene componentes de IU reutilizables para aplicaciones basadas en servidor. La idea principal es encapsular varias tecnolog铆as del lado del cliente como CSS, JavaScript y HTML que permitir谩n a los desarrolladores crear interfaces de usuario sin conocer en profundidad ninguna de estas tecnolog铆as. Simplemente pueden arrastrar y soltar componentes de la interfaz de usuario y centrarse m谩s en los detalles de la capa de presentaci贸n.

El sistema de plantillas predeterminado en JSF es FaceLets. JSF suficientemente similar a Struts.

JSF se puede integrar sin problemas con componentes habilitados para AJAX para enriquecer la experiencia del usuario al agregar eventos Ajax para validaciones e invocaciones de m茅todos.

馃捇 Framework Java Server Faces 馃搼 Documentaci贸n Java Server Faces Framework 馃敐 Volver al Inicio 馃敐

6. Dropwizard

Logotipo oficial del framework Java Dropwizard

Otro framework de Java fiel a su nombre: asistente. Este framework liviano le permite completar su aplicaci贸n muy r谩pido debido a que es compatible con configuraciones avanzadas, registros, m茅tricas de aplicaciones y mucho m谩s. Puede crear aplicaciones web RESTful que ofrezcan un alto rendimiento, sean estables y confiables.

Dropwizard es especialmente m谩gico porque re煤ne una gran cantidad de bibliotecas como Jetty, Guava, Jersey, Jackson y Metrics entre muchas otras del ecosistema Java en un solo framework y le brinda una aplicaci贸n ligera y ligera.

Dado que hay bibliotecas integradas para todas las configuraciones, tareas de seguridad y relacionadas con el rendimiento, todo lo que necesita hacer como desarrollador es construir su l贸gica empresarial.

Dropwizard es un framework de c贸digo abierto que se incluye con las bibliotecas y puede configurarlo f谩cilmente con Eclipse IDE y crear un proyecto simple para aprender (隆Cr茅ame, puede aprender Dropwizard por su cuenta!). El tutorial b谩sico del sitio web de Dropwizard te ayudar谩 en cada paso.

馃捇 Framework Dropwizard 馃搼 Documentaci贸n Dropwizard Framework 馃敐 Volver al Inicio 馃敐

7. Grails

Logotipo oficial del framework Java: Grails

Grails es un framework completo f谩cil de aprender, muy adecuado para aquellos que reci茅n comienzan su carrera de programaci贸n. Si bien Grails es un framework web escrito en lenguaje de programaci贸n Groovy, se ejecuta en la plataforma Java y es perfectamente compatible con la sintaxis Java. Este framework se basa en el patr贸n de dise帽o MVC.

Groovy es similar a Java, que agrega algunas caracter铆sticas m谩s en comparaci贸n con Java. Es muy f谩cil aprender Groovy si ya conoces Java.

Similar a JSP, en Grails, la tecnolog铆a de representaci贸n es GSP (Groovy Server Pages). Crear etiquetas para la Vista en Grails es simple y f谩cil. Tambi茅n usa GORM que, como habr谩s adivinado, es la implementaci贸n de ORM utilizada en Grails. Tambi茅n puede usar directamente Hibernate en lugar de GORM. Grails tiene soporte integrado para API RESTful, lo que facilita la creaci贸n de dichos servicios.

Aqu铆 viene la mejor parte: puede integrar su c贸digo java existente con Grails. Si tiene una combinaci贸n de c贸digo Groovy y Java en su aplicaci贸n, 隆funcionar谩 bien!

La mejor manera de aprender Grails es configurar su propio entorno de desarrollo utilizando cualquier IDE de Java como Eclipse, NetBeans, etc. y seguir cualquiera de estos tutoriales para crear su primera aplicaci贸n web.

馃捇 Framework Grails 馃搼 Documentaci贸n Grails Framework 馃敐 Volver al Inicio 馃敐

8. ATG

Logotipo oficial del framework Java: ATG

ATG es una plataforma de comercio web escrita en Java. Es un framework personalizable y configurable, particularmente 煤til para sitios web relacionados con el comercio electr贸nico. El producto es propiedad de Oracle y admite aplicaciones B2B y B2C que son complejas y enormes. Sin embargo, para aplicaciones a peque帽a escala, podr铆a ser costoso. Si est谩 entrando en el desarrollo de sitios web de comercio electr贸nico, ATG es un buen framework para aprender y enriquecer谩 su conocimiento t茅cnico y de dominio.

La plataforma ATG puede ejecutarse en tres servidores: Oracle Weblogic, IBM Websphere y JBoss.

Hay 3 capas principales en el framework:

  • Dynamo Application Framework: es la capa base que proporciona un entorno de desarrollo basado en JavaBeans y JSP. Existen clases ATG est谩ndar para todas las funcionalidades comunes e incluso se puede crear y ensamblar c贸digo Java personalizado a partir de beans de componentes al vincularlos a trav茅s de archivos de configuraci贸n.
  • El m贸dulo de personalizaci贸n: aqu铆 es donde el contenido para cada usuario se personaliza din谩micamente. Este m贸dulo ayuda a controlar y mantener perfiles de usuario y reglas comerciales que definen qu茅 contenido se mostrar谩 a un usuario en particular. Esta capa tambi茅n admite correos electr贸nicos dirigidos.
  • El m贸dulo Escenarios: este m贸dulo mejora a煤n m谩s las capacidades del m贸dulo de personalizaci贸n mediante la introducci贸n de campa帽as urgentes e impulsadas por eventos que gestionan las interacciones entre los visitantes del sitio y el contenido durante un per铆odo de tiempo. Por ejemplo, ofertas por tiempo limitado, ofertas exclusivas para ciertos miembros, etc.

ATG es un framework extenso y necesita tiempo y paciencia para aprenderlo. Varias grandes empresas como Walmart, Macy鈥檚, BestBuy, ASDA y m谩s tienen su sitio web basado en ATG.

馃捇 Framework ATG 馃搼 Documentaci贸n ATG Framework 馃敐 Volver al Inicio 馃敐

9. Play

Logotipo oficial del framework Java: Play

Play es un tipo de framework ligeramente convencional y 煤nico que sigue el enfoque de la convenci贸n sobre la configuraci贸n. Se basa en el patr贸n MVC y es un framework de aplicaci贸n web de c贸digo abierto. Adem谩s de Java, puede escribir aplicaciones web Play en Scala.

Play es similar a Django o Ruby on Rails o la arquitectura ASP.NET y no necesariamente sigue los est谩ndares web J2EE.

Algunas caracter铆sticas de Play son:

  • Alto rendimiento debido al procesamiento asincr贸nico
  • Sin contenedor, sin estados y construido sobre principios reactivos
  • Utiliza un lenguaje de tipo est谩tico, por lo que la mayor铆a de los errores se detectan durante el tiempo de compilaci贸n, lo que ahorra muchos errores al principio del ciclo de vida del desarrollo.
  • Scala explora la verdadera OOP junto con algunos conceptos de programaci贸n funcional. Su compatibilidad con Java lo convierte en un sistema excelente y potente.
  • Con Play2, se ha lanzado un nuevo y poderoso sistema de compilaci贸n sbt que facilita la integraci贸n con los proyectos de Maven, as铆 como la creaci贸n de archivos JAR simples.
  • Se incorporan amplias bibliotecas de acceso a bases de datos relacionales para funcionalidades comunes.

馃捇 Framework Play 馃搼 Documentaci贸n Play Framework 馃敐 Volver al Inicio 馃敐

10. Apache Hadoop

Logotipo oficial del framework Java: Apache Hadoop

Aunque Apache Hadoop no es un framework completo, proporciona un framework de software y funciona en el modelo de programaci贸n MapReduce. Estas utilidades pueden manejar f谩cilmente grandes vol煤menes de datos (Big Data), almacenarlos, analizarlos y procesarlos para proporcionar resultados m谩s r谩pidos y m谩s eficientes.

He incluido a Hadoop en esta lista porque es la 鈥榗osa鈥 de hoy con el Big Data ganando protagonismo.

Hadoop ayuda en el almacenamiento y procesamiento de datos distribuidos utilizando el patr贸n de dise帽o maestro esclavo. La capa Hadoop HDFS (Sistema de archivos distribuidos de Hadoop) del nodo maestro (concretamente NameNode) tiene el nodo de datos. La capa MapReduce tiene el JobTracker y el tasktracker. Los nodos esclavos tienen el nodo Datos y el TaskTracker respectivamente.

HDFS divide los archivos en un conjunto de bloques y estos se replican en todo el cl煤ster.

Si desea familiarizarse con Big Data y Data Science, Hadoop es su lugar para comenzar.

馃捇 Framework Apache Hadoop 馃搼 Documentaci贸n Apache Hadoop Framework 馃敐 Volver al Inicio 馃敐

M谩s Frameworks (Menos Utilizados)

11. GWT

Logotipo oficial del framework Java: GWT

Google Web Toolkit (GWT) es un framework obviamente creado por Google para crear aplicaciones ricas de Internet en Java. Una de las mejores caracter铆sticas de GWT es que convierte el c贸digo Java en c贸digo JavaScript, que tambi茅n es un c贸digo personalizado basado en el navegador. Personalmente, me gusta esta caracter铆stica porque, durante el desarrollo, sol铆amos dedicar mucho tiempo y esfuerzo a las pruebas del navegador antes. Con este conjunto de herramientas de c贸digo abierto, podemos escribir aplicaciones web de alto rendimiento en menos tiempo. Si ya tiene una base de c贸digo, puede integrarla f谩cilmente con GWT porque GWT tambi茅n es compatible con Eclipse IDE, Maven y Junit. El framework tambi茅n proporciona amplias bibliotecas de widgets que pueden realizar la mayor铆a de las tareas, lo que facilita que incluso un principiante en Java desarrolle l贸gica empresarial sin preocuparse demasiado por las cosas b谩sicas.

馃捇 Framework GWT 馃搼 Documentaci贸n GWT Framework 馃敐 Volver al Inicio 馃敐

12. Vaadin

Logotipo oficial del framework Java: Vaadin

Vaadin es un producto emblem谩tico y tambi茅n una plataforma donde los desarrolladores pueden hacer la implementaci贸n de la interfaz de usuario web HTML5 utilizando Java. Es una plataforma de c贸digo abierto que incluye el framework web Java y un conjunto de componentes web junto con herramientas y arrancadores de aplicaciones. Estos componentes web forman el n煤cleo de Vaadin y se pueden personalizar para obtener un c贸digo vers谩til y de alto rendimiento para aplicaciones m贸viles y de escritorio.

El flujo de Vaadin es la parte real del framework de Java de la plataforma Vaadin que se encarga de la comunicaci贸n cliente-servidor, as铆 como del enrutamiento. Con Vaadin flow, puede escribir su aplicaci贸n web completamente en Java sin la molestia de JS o CSS. Los componentes de la interfaz de usuario se ocupan de las actividades del navegador del usuario mediante la comunicaci贸n automatizada hacia y hacia el navegador y el servidor. Puede integrar f谩cilmente los componentes de Vaadin en cualquier IDE que est茅 utilizando, adem谩s es un framework multiplataforma, por lo que no debe preocuparse por migrar el c贸digo a una plataforma diferente.

Es un enfoque completamente nuevo para crear aplicaciones Java para que pueda concentrarse solo en la capa de presentaci贸n sin preocuparse por las comunicaciones cliente-servidor. Tambi茅n tiene una API de enlace de datos que asigna componentes de IU a la base de datos usando c贸digo Java de tipo seguro y capas de abstracci贸n para que pueda construir componentes reutilizables en la IU usando plantillas HTML y Java.

馃捇 Framework Vaadin 馃搼 Documentaci贸n Vaadin Framework 馃敐 Volver al Inicio 馃敐

13. Spark

Logotipo oficial del framework Java: Spark

Otro golpe maestro de Apache, Spark es un framework de desarrollo web de c贸digo abierto que tiene caracter铆sticas similares a Spring, Play y JAX-RS, pero es m谩s potente y no sigue el patr贸n de dise帽o MVC tradicional.

Es un micro framework y un lenguaje de dominio espec铆fico para Java que se centra en la velocidad de desarrollo. Necesita muy menos configuraci贸n y codificaci贸n. Es 10 veces m谩s r谩pido que Hadoop en t茅rminos de procesamiento de datos debido al c谩lculo en memoria. Un framework completamente din谩mico, Spark admite la inicializaci贸n diferida y el procesamiento de datos en tiempo real.

Tambi茅n es f谩cil de integrar con Scala y R, que son lenguajes de programaci贸n centrados en ciencia de datos y big data. El objetivo principal de Spark es procesar grandes datos y tambi茅n admite an谩lisis avanzados con consultas SQL, aprendizaje autom谩tico y algoritmos gr谩ficos.

No piense que Spark puede reemplazar a Hadoop, puede ser una extensi贸n de las caracter铆sticas que ofrece Hadoop, aprender estos dos frameworks le dar谩 una ventaja sobre los dem谩s si est谩 entrando en el campo de Data Science.

馃捇 Framework Spark 馃搼 Documentaci贸n Spark Framework 馃敐 Volver al Inicio 馃敐

14. OpenXava

Logotipo oficial del framework Java: OpenXava

Una plataforma de c贸digo bajo para desarrollar aplicaciones web de manera r谩pida, puede poner en funcionamiento sus aplicaciones comerciales en un tiempo r茅cord. Consiste en componentes comerciales que hacen que la creaci贸n de aplicaciones incluso complejas sea f谩cil y sin complicaciones para los desarrolladores. Extensible, personalizable y OO en sentido real, OpenXava utiliza clases de Java como n煤cleo para modelar el problema empresarial. Tal enfoque de desarrollo basado en modelos garantiza la encapsulaci贸n. Los desarrolladores solo definen el modelo como clases Java anotadas simples y las funcionalidades necesarias se generan durante el tiempo de ejecuci贸n.

La estructura y la filosof铆a de OpenXava siguen una arquitectura de componentes comerciales en oposici贸n a la arquitectura tradicional de MVC. Aqu铆 todo es un concepto de negocio y todos los artefactos que contribuyen a un determinado concepto de negocio est谩n en el mismo lugar, ya sea la Vista, Modelo o Controlador asociado.

馃捇 Framework OpenXava 馃搼 Documentaci贸n OpenXava Framework 馃敐 Volver al Inicio 馃敐

15. Vert.X

Logotipo oficial del framework Java: Vert.X

Desarrollado por Eclipse, Vert.x es un framework de aplicaci贸n basado en eventos que utiliza muchos lenguajes como Java, JS, Groovy, Scala y m谩s. Por lo tanto, es pol铆glota en la naturaleza. Se basa en el modelo de programaci贸n as铆ncrono, lo que hace que las aplicaciones no se bloqueen y est茅n libres de subprocesos m煤ltiples.

Se puede decir que Vert.x es m谩s un kit de herramientas que proporciona API en varios idiomas para realizar tareas asincr贸nicas que necesitan todas las aplicaciones web: registro, autenticaci贸n, monitoreo, conectividad de base de datos, soporte de m煤ltiples cl煤steres, etc. Hay dos conceptos principales en Vert .X -

  • Verticle: al igual que cualquier otro modelo asincr贸nico, hay un bucle de eventos que tiene eventos como mensajes, buffers de red, solicitud HTTP, etc. Cada evento del bucle de eventos es procesado por Verticle.
  • Bus de eventos: diferentes v茅rtices se comunican entre s铆 mediante el bus de eventos. Esto se hace a trav茅s del paso de mensajes as铆ncronos. El bus de eventos puede realizar diferentes tipos de mensajes como punto a punto, difusi贸n y solicitud-respuesta.

Lo mejor de Vert.x es su naturaleza sin bloqueo que hace que las aplicaciones web tengan un alto rendimiento. El framework se puede utilizar para cualquier aplicaci贸n, peque帽a, mediana o gran escala. Si ya conoce Node.js, apreciar谩 m谩s Vert.x, ya que tiene todas las caracter铆sticas de Node.js m谩s el beneficio de la m谩quina virtual Java que lo convierte en una combinaci贸n potente y robusta.

馃捇 Framework Vert.X 馃搼 Documentaci贸n Vert.X Framework 馃敐 Volver al Inicio 馃敐

16. Tapestry

Logotipo oficial del framework Java: Tapestry

Conceptualmente, Tapestry es similar a JSF y Wicket. Es un framework de desarrollo de aplicaciones web de c贸digo abierto, multiplataforma y basado en componentes que puede crear aplicaciones altamente escalables. Construido sobre la rica API de Java Servlet, funciona en cualquier contenedor o servidor de aplicaciones. Tapestry es un verdadero framework orientado a objetos porque crea p谩ginas HTML utilizando plantillas HTML puras o una clase (objetos) de Java simple. Casi no se requiere configuraci贸n XML, Tapestry utiliza anotaciones, lo que hace que el c贸digo sea simple y f谩cil de administrar.

Con Tapestry, el tiempo de inactividad de la aplicaci贸n es m铆nimo porque cualquier cambio, incluso en una clase de Java, puede intercambiarse en caliente sin necesidad de reiniciar el servidor. Tapestry tambi茅n se encarga de la construcci贸n y redireccionamiento de URL. A diferencia de otros frameworks, aqu铆 el framework se adapta al c贸digo y no al rev茅s.

Algunas de las funciones listas para usar de Tapestry son: carga de archivos, paginaci贸n, validaciones de campo, l贸gicas de fecha y calendario, internalizaci贸n, mostrar ventanas emergentes, etc.

Es f谩cil integrar el c贸digo de Tapestry con frameworks de back-end como Spring, Hibernate, etc. y frameworks de prueba como Selenium.

馃捇 Framework Tapestry 馃搼 Documentaci贸n Tapestry Framework 馃敐 Volver al Inicio 馃敐

17. Jersey

Jersey es un framework de servicios web para crear servicios RESTful y es compatible con las API JAX-RS. Simplifica enormemente el desarrollo de servicios RESTful a trav茅s de caracter铆sticas 煤tiles y funciones de utilidad. Jersey proporciona una especie de capa de abstracci贸n para que los desarrolladores no tengan que preocuparse por la implementaci贸n de bajo nivel de la comunicaci贸n cliente-servidor y puedan concentrarse en la funcionalidad principal del servicio web.

Una caracter铆stica llamativa de Jersey, a diferencia de cualquier otro framework RESTful, es que permite la salida fragmentada, es decir, el servidor puede enviar una respuesta a un cliente en partes o fragmentos. Esto es 煤til cuando se deben enviar datos grandes y se pueden enviar fragmentos de datos mientras se prepara la respuesta completa.

Jersey tambi茅n viene con una infraestructura de prueba f谩cil. Puede escribir pruebas de integraci贸n livianas basadas principalmente en Junit. Tambi茅n es f谩cil integrar las pruebas con el entorno Maven. Todo lo que necesita hacer es agregar la dependencia en su pom.xml.

馃捇 Framework Jersey 馃搼 Documentaci贸n Jersey Framework 馃敐 Volver al Inicio 馃敐

18. OSGI

Logotipo oficial del framework Java: OSGI

La iniciativa OSGi o Open Service Gateway define un sistema basado en componentes. Es un framework de trabajo de Java popular donde cada componente se llama paquete. Cada paquete tiene un ciclo de vida independiente y no depende de otros paquetes. Considere que el paquete es un archivo jar con encabezados espec铆ficos de OSGi. Los paquetes tienen que declarar expl铆citamente los paquetes a los que necesitan acceder sin los cuales la plataforma OSGi no se iniciar谩.

Los paquetes usan el registro de servicio de nivel JVM para descubrir, publicar y enlazar paquetes como servicios. Esta es la esencia de OSGi: una arquitectura de aplicaci贸n modular que promueve la adaptabilidad y los cambios r谩pidos sin mucho tiempo de inactividad de la aplicaci贸n (flexibilidad de tiempo de ejecuci贸n).

OSGi es principalmente popular debido a su f谩cil integraci贸n con eclipse y proyectos basados 鈥嬧媏n Maven.

OSGi tiene algunos buenos conceptos y beneficios, sin embargo, debido a los paquetes individuales independientes, el control de versiones podr铆a ser un problema. Esta podr铆a ser una gran desventaja de usar este framework sobre otros. Sin embargo, vale la pena invertir algo de tiempo en este framework debido a los beneficios de la modularidad y la carga de clases aisladas que son conceptos importantes para un desarrollador.

馃捇 Framework OSGI 馃搼 Documentaci贸n OSGI Framework 馃敐 Volver al Inicio 馃敐

19. Drools

Logotipo oficial del framework Java: Drools

Drools es un popular sistema de gesti贸n de reglas comerciales. Tiene un motor de reglas de negocios (BRE), autor铆a, una aplicaci贸n de administraci贸n de reglas y soporte de tiempo de ejecuci贸n para los modelos de decisi贸n y notaci贸n. La aplicaci贸n de gesti贸n de reglas se llama como el banco de trabajo Drools. El proyecto est谩 respaldado por RedHat y JBoss. Con Drools, los desarrolladores pueden separar f谩cilmente los datos de la l贸gica empresarial. Los dos pasos principales en Drools son:

Autor铆a: creaci贸n de archivos de reglas. Tiempo de ejecuci贸n: donde ejecutas las reglas. La caracter铆sticas m谩s importantes de Drools es que se pueden eliminar y agregar nuevas reglas en cualquier momento sin reiniciar el servidor.

Drools es una opci贸n adecuada para aplicaciones que dependen de muchas condiciones para que suceda alguna acci贸n. Por ejemplo, para verificar si una persona es elegible para actualizar su plan o no, hay ciertas reglas establecidas, por ejemplo, si el cliente existe, el monto de la factura del cliente es mayor que el l铆mite determinado, etc. Estas reglas se pueden definir como una tabla de decisiones en lugar de codificarlas en el c贸digo. 隆Cualquier cambio no necesitar铆a otra compilaci贸n, prueba completa o redistribuci贸n!

馃捇 Framework Drools 馃搼 Documentaci贸n Drools Framework 馃敐 Volver al Inicio 馃敐

20. MyBatis

Logotipo oficial del framework Java: MyBatis

MyBatis, un software gratuito de Apache, es un framework de persistencia en Java donde los m茅todos Java se asignan con sentencias SQL , a diferencia de ORM que asigna objetos Java a tablas en la base de datos. El motor de mapeo mapea los resultados de SQL en 谩rboles de objetos usando descripciones XML o anotaciones de manera declarativa.

En muchos sentidos, MyBatis es mejor que JDBC e Hibernate. MyBatis puede generar din谩micamente sentencias SQL que las separan del c贸digo. Tambi茅n ofrece almacenamiento en cach茅 de consultas para facilitar el acceso. La API es muy simple y no necesita ser un experto en SQL o base de datos para poder escribir c贸digo MyBatis.

MyBatis es una buena alternativa a Hibernate y JDBC cuando su aplicaci贸n no es demasiado compleja y desea caracter铆sticas simples, como conectividad de base de datos, gesti贸n de transacciones, carga del controlador de base de datos, gesti贸n y liberaci贸n de conexiones, etc. MyBatis tambi茅n se puede integrar f谩cilmente con Spring Framework.

馃捇 Framework MyBatis 馃搼 Documentaci贸n MyBatis Framework 馃敐 Volver al Inicio 馃敐

21. Apache Mina

Logotipo oficial del framework Java: Apache Mina

Apache Mina es un framework de aplicaci贸n de red con el cual los desarrolladores pueden crear f谩cilmente aplicaciones de red altamente escalables y de alto rendimiento. Ya sea que use TCP / IP, UDP, LDAP, NTP, DNS, etc. o un protocolo personalizado, Mina tiene API unificadas para todos los transportes. El framework puede proporcionar API de red de alto y bajo nivel. Mina maneja completamente las operaciones de E / S, ayudando a los desarrolladores a concentrarse completamente en la l贸gica empresarial y otras necesidades de aplicaciones. Es f谩cil probar el c贸digo escrito con la ayuda de objetos simulados. Puedes aprender f谩cilmente Mina usando el Eclipse IDE. Se puede integrar con frameworks populares como Spring y PicoContainer, lo que lo convierte en una opci贸n popular para aplicaciones de red.

MINA es mejor que SOAP y es m谩s estable y confiable. Tiene una rica biblioteca de redes para manejar hilos concurrentes.

馃捇 Framework Apache Mina 馃搼 Documentaci贸n Apache Mina Framework 馃敐 Volver al Inicio 馃敐

Conclusi贸n

Hay muchos otros frameworks java que no son full-stack o frameworks de desarrollo web, pero son 煤tiles en todas las aplicaciones, como log4j para el registro, Junit y Selenium para las pruebas, etc. Es esencial saber acerca de ellos, aunque puedes aprenderlos sobre la marcha junto con los otros frameworks que has visto en la lista anterior.

El mejor framework para su aplicaci贸n debe cumplir con los requisitos de su negocio, proporcionar un cierto nivel de flexibilidad y un rendimiento 贸ptimo y ser f谩cil de mantener y debe ser capaz de permitirte cambios y afrontar una posible evoluci贸n futura.

Por ejemplo, para un framework de desarrollo web de pila completa (full-stack) si se encuentra algo que deba ser cambiado, deber铆a impactar menos sobre la aplicaci贸n, es decir, no deber铆as de tener que construir e implementar la aplicaci贸n nuevamente para la realizaci贸n exclusiva de peque帽os cambios. Solamente con un cambio de configuraci贸n deber铆as poder hacer la magia suficiente como para realizarlo. Dichas aplicaciones ahorran tiempo de inactividad y proporcionan flexibilidad.

Elija el framework para la aplicaci贸n sabiamente, si quieres disfrutar de todas las caracter铆sticas que te proporciona Java.