Mostrando entradas con la etiqueta ejb. Mostrar todas las entradas
Mostrando entradas con la etiqueta ejb. Mostrar todas las entradas

domingo, 12 de abril de 2026

Hablemos de Quarkus

Quarkus es un framework (creado por Red Hat) moderno de Java diseñado para optimizar aplicaciones en entornos de nube, contenedores y Kubernetes. Su principal ventaja es ofrecer tiempos de arranque ultrarrápidos y bajo consumo de memoria, lo que lo hace ideal para microservicios y arquitecturas serverless.

Diseñado para funcionar tanto en JVM tradicional como en compilaciones nativas con GraalVM. 

Compatible con librerías y estándares conocidos: Eclipse MicroProfile, Spring, RESTEasy (JAX-RS), Hibernate ORM (JPA), Apache Kafka, Infinispan, Camel, entre otros.

Su sistema de inyección de dependencias (CDI) y extensiones permite integrar fácilmente nuevas funcionalidades.

Lo podemos usar para:

  • Microservicios en Kubernetes: optimiza despliegues en contenedores con tiempos de arranque mínimos. 
  • Aplicaciones serverless: ideal para funciones que requieren ejecución rápida y eficiente. 
  • Aplicaciones reactivas y REST: soporta APIs modernas y comunicación asíncrona. 
  • Integración con bases de datos y mensajería: Hibernate, Kafka, PostgreSQL, entre otros. 
  • Desarrollo ágil: incluye un modo de desarrollo con recarga en caliente para iterar rápidamente.

Principales características:

  • Arranque ultrarrápido: aplicaciones listas en milisegundos. 
  • Consumo reducido de memoria: optimizado para entornos con recursos limitados. 
  • Compilación nativa con GraalVM: genera binarios ligeros y eficientes. 
  • Extensible: gran ecosistema de extensiones para añadir soporte a tecnologías populares. 
  • Developer Joy: herramientas integradas para mejorar la experiencia del desarrollador (live reload, CLI). 
  • Integración con la nube: pensado para Kubernetes, OpenShift y servicios cloud.

Para usar Quarkus lo puedes instalar de las siguientes formas:

Desde una terminal Linux, Mac OS, Windows (con WSL o Cygwin/MinGW):

$ curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/
$ curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio

Con SDKMAN!:

$ sdk install quarkus

Con Powershell:

$ iex "& { $(iwr https://ps.jbang.dev) } trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/"
$ iex "& { $(iwr https://ps.jbang.dev) } app install --fresh --force quarkus@quarkusio"

Nota: También podemos crear un proyecto Quarkus usando Maven.

Verificamos la instalación:

$ quarkus --version

Emepzando con Quarkus

1. Vamos a abrir una terminal y tecleamos lo siguiente:

$ quarkus create && cd code-with-quarkus

Esto nos creará un proyecto y nos ubicará en el directorio principal.

2. Ejecutamos la aplicación:

$ quarkus dev

Si todo va bien, abrimos un navegador en la URL: http://localhost:8080/

Con esto hemos creado nuestra primera aplicación con Quarkus.

Este framework se podría considerar como el verdadero contendiente de Spring Boot dadas sus similitudes. Aunque existen otras alternativas como Helidon y Micronaut que no se quedan atrás.

En este blog ya hemos hablado de Quarkus indirectamente y vimos cómo es ideal para crear aplicaciones tipo REST.

En próximas entregas hablaremos un poco de Helidon y Micronaut.

Enlaces:

https://es.quarkus.io/
https://alquimistadecodigo.blogspot.com/2022/11/un-vistazo-quarkus-el-supersonic.html
https://code.quarkus.io/
https://alquimistadecodigo.blogspot.com/2023/01/quarkus-un-spring-boot-mejorado.html

domingo, 25 de mayo de 2014

Programando en Java ... no. 7

En está ocasión conoceremos algunos términos de la JEE (Java Enterprise Edition) como lo es:  Enterprise JavaBeans y Java Persistence API.


Enterprise JavaBeans

Básicamente son clases mucho más complejas que un simple POJO o un JavaBean. Deben ser contenidas y desplegadas dentro de un contenedor de EJBs, y esperan a que un "cliente" las invoque. No se pueden acceder de una manera directa desde un programa obviamente.

En la imagen se puede apreciar las funciones de cada capa del  Modelo-Vista-Controlador.

  • Dentro del modelo tendremos las Entity classes y las Sessions beans
  • El controlador se encargara de recibir peticiones de un cliente, y si encuentra el recurso, enviar respuestas a esas peticiones
  • La vista son las páginas que el usuario verá en su monitor
 
JPA... ¿Para qué sirve?
Se trata de una herramienta de mapeo objeto-relacional que nos ayuda crear una relación entre objetos y entidades de una base de datos. Forman parte del estándar EJB.

@Entity
@Table(name="blog")
public class Blog implements java.io.Serializable{
  @Id
   private Long clave;
   ...
   ...
}

EJB (Sessions beans) + JPA (Entity classes)
Al crearse las entidades se encuentran en modo desconectado,  es necesario hacer uso de las Sessions beans, las cuales se encargan de hacer las operaciones (con ayuda de de la EntityManager) de consulta, actualización y borrado.

public class BlogController{
@PersistContext
EntityManager em;
...
...
}

Las entidades JPA y los componentes EJB se configuran mediante anotaciones, y vaya que son muchas y con propósitos bien definidos.

 
Java Persistence Query Language
Se trata de un subconjunto de Hibernate Query Language, opera directamente sobre los objetos para operaciones INSERT, UPDATE, y DELETE.

SELECT b FROM  Blog b

UPDATE Blog b SET b.autor='Adriana' WHERE a.titulo='Uso de Websphere en Eclipse'

DELETE FROM Blog b WHERE b.id=1022

Métodos para ejecutar sentencias JPQL
  • createQuery(String jpql)
  • createNamedQuery(String nombre)
  • createNativeQuery(String sql)

En conclusión, hablar de EJB y JPA abarcaría mucho tiempo.Falta tratar el tema de las anotaciones, configuración de los componentes, contenedores, etc.

Espero que la imagen del Modelo-Vista-Controlador ayude un poco a entender de que tratan los EJBs.

Links
http://www.objectdb.com/
http://stackoverflow.com/questions/6033905/create-the-perfect-jpa-entity

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog