Entradas

Revisando la jerarquía de dependencias de Spring Cloud Config

Imagen
Estos días he estado revisando la organización de los proyectos de Spring Cloud: cómo gestionan las dependencias, cuál es la jerarquía y las relaciones entre los proyectos a la hora de hacer las builds con Maven, etc. Spring Cloud está formado por un buen número de subproyectos (Spring Cloud Config, Spring Cloud Netflix, Spring Cloud Sleuth, ...) y se hace necesario, por un lado, controlar las dependencias transitivas de los proyectos (para alinear versiones y evitar conflictos que podrían darse si cada uno se compila con diferentes versiones de otras librerías), y por otro, ofrecer un BOM (Bill of Materials) o parent a los consumidores para que puedan utilizar los artefactos de Spring Cloud con facilidad, minimizando posibles conflictos a la hora de gestionar las versiones.

A pesar de haberle echado un ojo hace ya tiempo en el trabajo me había quedado con la espina de revisar en detalle todas las dependencias y construir un mapa con las versiones exactas de los proyectos en un moment…

¿Qué hay detrás de las lambdas de Java 8?

En este post trato de recoger, en español y de forma más resumida, buena parte del contenido del artículo: Java 8 Lambdas - A Peek Under the Hood.

¿Qué es una expresión lambda?  Las expresiones lambdas y el API Streams son dos de los añadidos estrella que nos trajo Java 8. Podemos explicar de forma muy sencilla qué es una expresión lambda: se trata de una función anónima, no ligada a un identificador concreto.

¿Para qué nos sirve una función anónima en Java? Pues, entre otros casos, para la infinidad de ocasiones en que hemos querido parametrizar comportamiento, pasando como parámetro a un método la lógica de una función... y en lugar de eso nos ha tocado crearnos una clase (o clase anónima) con un método conteniendo el comportamiento y pasar esa clase como argumento.
Por ejemplo,  muchas APIs de Java tienen como parámetro la interfaz Comparator. Esta interfaz tiene un único método, compare, que recibe dos objetos a comparar y devuelve un entero. Si quisiéramos ordenar una lista de cl…

Creando un proyecto con Spring Initializr: diferencias entre un empaquetado jar y un war

Imagen
Actualmente hay poca gente que no reconozca que, en el mundo del desarrollo Java, Spring Framework es un referente. Y dentro de la Plataforma Spring, Spring Boot es el proyecto con más empuje actualmente. Se lo ha ganado a pulso, claro, pues con sus starters y autoconfiguración permite arrancar un proyecto rápidamente, permitiendo centrarnos en las funcionalidades que queremos construir y minimizando la necesidad de configuraciones.

Spring Initializr Pues bien, una pieza a considerar en el ámbito de Spring Boot cuando vamos a comenzar un proyecto es Spring Initializr. Este portal o servicio nos ofrece un formulario para que rellenemos los datos básicos de nuestro proyecto (nombre, groupId, artifactId, versión de Java, versión de Spring Boot...), nos permite elegir si deseamos que sea un proyecto Maven o Gradle y nos ofrece un amplio abanico de funcionalidades para que seleccionemos qué vamos a inclulir en nuestro proyecto como dependencias (¿va a ser un proyecto web?, ¿utilizaremos Th…

Post uno

Java en la Sopa aún no es nada, apenas un principio de embrión. Veamos en qué se va convirtiendo esto...

Esta es la primera entrada. Aquí queda.