Java

Java: cómo usar las enumeraciones y los EnumMap

2023-01-28 - Categorías: Java
Duke Java

Las enumeraciones enum, y los mapas de enumeraciones EnumMap, son un par de utilidades de las librerías de Java, que nos pueden ayudar a mantener fácilmente lotes de información estructurada. Además, las enumeraciones y los mapas de enumeraciones son objetos muy eficientes. Son eficientes tanto en coste temporal como espacial, ya que están especialmente optimizados para tamaños de conjuntos de datos predefinidos.

Este es un howto o codekata para comenzar rápido a usar las enumeraciones, y los EnumMap.

Continuar leyendo..


Java Spring Boot & Angular: cómo automatizar la compilación de un proyecto para desplegar en un servidor

2022-07-25 - Categorías: Angular / General / Java / Java Spring Boot
Spring Boot Angular Maven

Dejo aquí este codekata o howto de copia y pega para montar la estructura de un proyecto general con Maven, usando Spring Boot en el backend y Angular en el frontend. La idea de este post es automatizar el despliegue en producción de este tipo de proyectos, cómo comenzar a montar el despliegue continuo.

En líneas generales, consite en compilar el micro-servicio Spring Boot embebiendo todo el frontend en Angular dentro del mismo empaquetado .jar. Con unas configuraciones en los ficheros POM de Maven, y en el JSON de configuración Angular, podemos automatizarlo.

Vamos al grano..

Continuar leyendo..

Java: sincronización con señales entre procesos concurrentes

2022-07-16 - Categorías: Java

¡Hola de nuevo! Esto es un codekata, apunte o resumen en Java, sobre la sincronización entre procesos concurrentes que corren en paralelo en varios hilos de ejecución usando señales. Esta sincronización es un mecanismo habitual, para sincronizar procesos en tiempo real, optimizando el uso de recursos para que todo vaya lo más rápido posible.

El escenario de este post, es que tenemos 3 procesos concurrentes, que corren en paralelo. Tenemos un primer proceso que se va a encargar de lanzar otros dos, poniéndose a la espera sin consumir recursos en esta espera. El segundo proceso va a ser un productor de elementos cada cierto tiempo. Y el tercer proceso un consumidor de estos elementos.

Continuar leyendo..

Controlando el acceso exclusivo a memoria compartida en Java

2022-06-19 - Categorías: General / Java

Este post es continuación de este otro sobre paralelizar procesos para acelerarlos usando memoria compartida. Quedó en el aire la sincronización de los procesos. Esto se puede hacer de varias formas, pero si simplemente queremos evitar que dos procesos escriban a la vez en la misma zona de memoria compartida, lo podemos implementar con la palabra reservada synchronized.

Si dos procesos no deben escribir a la vez en la memoria compartida y lo hacen, se perderá información, habrá malfuncionamiento del sistema completo.

Vamos al grano que es más fácil leer el código que explicarlo..

Continuar leyendo..

Acelerando, paralelizando, concurrencia, memoria compartida entre tareas en Java

2022-06-19 - Categorías: General / Java

Hoy traigo otro codekata, un howto o resumen sobre Java, y el manejo de tareas. Se trata de un tema recurrente, para acelerar tareas paralelizándolas y coordinándolas entre sí. Este post se centra en cómo usar una memoria compartida, entre 30 tareas en paralelo, que van escribiendo información en dicha memoria compartida.

En Java se facilita mucho todo esto, tiene funcionalidades que ayudan como por ejemplo: la clase Thread, los parámetros por referencia, la palabra reservada synchronized, o el manejo de hilos en núcleos diferentes del procesador de forma transparente para el programador gracias al JRE.

Resumiendo, esto es un esqueleto para tratar de multiplicar x30 la velocidad de un programa, usando tareas concurrentes, y compartiendo los resultados en memoria.

A grano..

Continuar leyendo..


Java Spring Boot: cómo hacer un multi-proyecto con Maven

2022-06-14 - Categorías: Java / Java Spring Boot
Spring-boot

Hoy traigo un codekata o howto sobre Java, más en concreto sobre Spring Boot, y más en concreto sobre Maven. Se trata de un tutorial guiado para montar una estructura de proyecto con varios subproyectos, embebidos dentro de un mismo proyecto más grande.

La idea es montar esta estructura con ficheros Maven que se nombran como pom.xml, para que desde uno principal se recompilen, limpien, instalen.. todos los demás.

Continuar leyendo..


Java Spring Boot: empezando con JPA Hibernate y Mariadb

2022-04-30 - Categorías: General / Java / Java Spring Boot
Spring-boot

Este post es un codekata en Java usando el ORM Hibernate junto con Spring Boot. Spring Boot es una tecnología de desarrollo para Java que tenemos disponible en Spring, que orienta un proyecto a crear microservicios y se facilita mucho la programación.

Por otro lado, con Hibernate tenemos un ORM, en el que la creación de bases de datos, su manteniento y trabajo diario se facilita. Se puede llegar a mantener un proyecto con Hibernate sin tener que picar ninguna línea de código SQL. Esto facilita de nuevo mucho la programación.

Este post sirve de codekata de copia y pega para el caso de Mysql/Mariadb/Oracle, etc..

¡Vamos al grano con el codekata!

Continuar leyendo..

Java Spring Boot: montando un productor y consumidor de Kafka

2022-04-27 - Categorías: General / Java / Java Spring Boot
Spring-boot

Esto es un codekata en Java con el framework de desarrollo Spring, en concreto usando la tecnología Spring Boot, para usar Apache Kafka.

Con Spring Boot conseguimos que el proyecto esté orientado a ser un microservicio, teniendo el servidor web Tomcat embebido. Por otro lado, mediante Kafka podemos dividir las aplicaciones en microservicios, comunicarnos entre sistemas con mensajes, convertir en asíncronos procesos pesados para recibir altos picos de peticiones procesando en background después, etcétera.. ¡vamos al grano!

Continuar leyendo..

Java: diferencias entre usar Thread o Runnable

2022-03-29 - Categorías: Java

Esto es un pequeño codekata en Java para lanzar procesos concurrentes en Java. Lo podemos hacer con las clases Thread o Runnable. Por un lado tenemos la interfaz Runnable, que proporciona la base para correr procesos en hilos independientes. Y por otro lado tenemos también la clase Thread, que extiende de Runnable, que implementa los procesos a ejecutar más fácilmente.

Continuar leyendo..

© 2024 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.