Category Archives: Java

Java 8 Optional

Java 8 Optional Evitar los Nullpointer es uno de los problemas con los que habitualmente nos encontramos los programadores en Java. Continuamente realizamos operaciones para verificar que el valor no sea null o tener la precaución de devolver valores not null y a pesar de esto es habitual el fallo por los null pointer. Java… Read More »

Java 8 como usar fechas y horas con la api java.time

Java 8 nos trae al fin una nueva api para el manejo de fechas. Nos encontramos dentro del paquete java.time con nuevas clases para resolver los problemas con fechas como LocalDate, horas con LocalTime o la combinación de fecha y hora con LocalDateTime. También incluye como es debido dentro de esta api el uso de… Read More »

Java – como usar ExecutorService

Java ExecutorService ExecutorService nos simplifica las tareas asincronas proveyendo un pool de hilos que son manejados por esta API abstrayendonos del trabajo de crearlos y asignarles tareas a estos hilos. Utilizando la factory class Executors La forma más común para crear una instancia de ExecutorService es a través de la factory class Executors. Por ejemplo… Read More »

Strategy Pattern con Spring Boot

Strategy Pattern con Spring Boot Un buen patrón para resolver la complejidad cuando debes implementar diferentes comportamientos según algún estado es el patrón strategy. Un patrón strategy encapsula comportamiento que podemos intercambiar en ejecución. Es decir, cambiar el comportamiento o lógica de negocio acorde al estado del modelo o contexto en el que te se… Read More »

Spring Boot + MySql + HikariCP

Configurar Spring Boot con MySql usando HikariCP Para configurar tu proyecto Spring con MySql utilizando HikariCP debes agregar las dependencias y configurar tu archivo properties con estos simples pasos. Dependencias Detalle de dependencias que necesitas para tu proyecto Spring con MySql y Hikari Definición del archivo properties Debes especificar el dialect para MySql, y para… Read More »

Spring Batch – Como eliminar las tablas de jobs

Spring Batch mantiene diferentes tablas con las instancias de los Jobs, las ejecuciones de los Jobs y las ejecuciones de los Steps, entre otras. Cuando estas en etapa de desarrollo resulta muchas veces útil eliminar las tablas para iniciar la app en limpio. Si necesitas eliminar todas las tablas de Jobs y Steps debes correr… Read More »

Java 8 Reference method

Puedes utilizar lambda para crear métodos anónimos, pero hay casos en el que estas expresiones lambda no hacen otra cosa más que llamar a otro método. En estos casos resulta más claro llamar al método directamente por su nombre. Si tienes una lista de personas de este modo y quieres ordenarla harías algo así de… Read More »

Java 8 Uso de Stream básico

Podemos definir Streams como una secuencia de funciones que se ejecutan una detrás de otra, de forma anidada. Las operaciones sobre Stream pueden ser intermedias o finales. En el caso de ser intermedias (filter, sorted, map) stream devolverá nuevamente otro stream permitiendo la continuidad de pasos o funciones sobre ella misma. Esto es llamado ‘pipelining’.… Read More »

Java 8 Usar expresiones Lambda

Que son las expresiones lambda Las expresiones lambda son una forma de crear funciones anónimas y que puedes utilzar en dónde el párametro recibido sea una interfaz funcional Una expresión lambda tiene esta forma (parameters) -> expression (parameters) -> { statements; } Estas son algunas expresiones lambda de ejemplo: () -> 5 // directamente devuelve… Read More »

Java Codigos de Barra con ZXing

El código de barra QR Code (Quick Response Code) es capaz de almacenar muchos más datos en menos tamaño en comparación con otros códigos de barra. Veamos con un breve ejemplo utilizando ZXing como crear códigos QR. Este ejemplo también te servirá para cualquier otro tipo de código soportado. Importar dependencia ZXing con maven Como… Read More »

Java 8 Interfaces Funcionales

Desde versiones anteriores conoces las interfaces SAM (Single Abstract Method interfaces). Es decir, interfaces que tienen un solo método abstracto; ejemplo de ellas encontramos a java.lang.Runnable Usualmente utilizamos este tipo de interfaz de forma anónima Java 8 mantiene estas SAM interfaces pero las llama Functional Interfaces. Creando además una anotación específica @FunctionalInterface que le dará… Read More »

Java 8 – Default Methods – Métodos Default

Java 8 ha hecho cambios en las interfaces, las que ahora podemos agregarles métodos default (default methods). Esto permite agregar métodos a las interfaces sin necesidad de implementarlos en las clases hijas. Este método default provee un comportamiento por defecto para el caso en que la clase concreta no lo especifique. Método Default: Sabemos que… Read More »

Java Spring Batch ejemplo

Como configurar Spring Batch Para configurar un proyecto de Spring Batch partiremos con las dependencias que necesitamos utilizando Maven, luego definiremos la configuración basica y algunos aspectos simples para conectarnos a una base de datos embebida. ¿Que es Spring Batch? Se trata de un framework destinado al proceso de grandes lotes de información.  Pero para… Read More »

Observar cambios en directorios con Java

A partir de Java 7 contamos con la posibilidad de observar cambios en un directorio y de este modo supervisar determinados eventos tales como creación, modificación o eliminación ocurridos en alguna ruta de nuestro sistema operativo. La clase específica para monitorear directorios a partir de Java 7 es WatchService. ¿Cómo observar cambios en un directorio?… Read More »

Java Generar Codigo QR

Te explico como generar Código QR en Java utilizando esta librería zxing. Como siempre, nada es mejor que un ejemplo… Este simple ejemplo contiene dos metodos, uno para crear una imagen con el QR a partir de un texto y otro para leer el QR desde la imagen.

Instalar Maven en Windows

Instalar Maven en Windows requiere pocos pasos, tan solo descargar en alguna carpeta, establecerla en el path y definir la variable de entorno M2_HOME Resumen de pasos 1-Descargar maven https://maven.apache.org/download.cgi 2-Agregar carpeta \bin al path 3-Crea una variable de entorno M2_HOME con la ruta de maven 4-Verificar mvn -v Descarga la última versión de Maven… Read More »

Instalar Maven en Ubuntu

Para ‘instalar’ Maven en Ubuntu es necesario solamente descargarlo, descomprimirlo y que configures algunas variables de entorno y el path. Descargar Maven desde https://maven.apache.org/download.cgi Descomprime la carpeta en alguna ubicación de tu preferencia. En mi caso la he descomprimido y luego copiado en /opt/maven3/ de esta forma cp -r /home/gustavo/Downloads/apache-maven-3.3.3/ /opt/maven3/ Agrega el directorio de… Read More »

Java Islands of isolation (islas de aislamiento)

Uno de los factores por los cuales el GC (garbage collector) elige los objetos que serán limpiados de memoria es cuando estos no tienen una referencia válida. Pero existe un caso particular en el que a pesar de tener referencias válidas los objetos pueden ser elegidos por el GC. Un ejemplo claro de esto es por ejemplo… Read More »