Mi primer microservicio con Spring Boot

Una vez pasado por la inevitable descripción de los microservicios:

¿Qué son los microservicios?

Pasemos a lo interesante.

En este primer artículo comenzaremos con algo muy simple, la creación y despliegue de un Servicio REST a través de Spring Boot a modo de microservicio.

Para eso sólo tenemos que:

1. Instalar Maven (si aún no lo tenéis)

Lo descargo desde aquí, lo descomprimo, añado al PATH %M2_REPO%/bin y configuro %M2_REPO%/conf/settings.xml con el proxy, repositorio local,…

2. Voy a la web de SPRING INITIALIZR: http://start.spring.io para crear un proyecto Maven para Spring Boot.

Como veréis desde aquí se pueden crear plantillas de proyectos configuradas para un gran número de tecnologías

De momento dejamos todas las opciones por defecto y seleeciono

Esto me genera un ZIP demo.zip:

3. Descomprimo este ZIP en cualquier carpeta:

Dentro veré el descriptor de Maven pom.xml

Para probar si vamos bien podemos ejecutar un

>mvn install

Que descargará las librerías de Spring Boot necesarias.

Si sois unos clásicos y aún usáis Java 7 os aparecerá este mensaje:

En cuyo caso podéis o poner Java 8 como JVM por defecto o bien cambiar en el pom.xml:

Al final obtendréis un BUILD SUCCESS

4. Por fin podemos empezar a crear nuestro primer Servicio, podemos hacerlo desde un Eclipse generando el proyecto Eclipse con >mvn eclipse:eclipse o a lo bruto!

Voy al paquete demo en %PROYECTO%/src/main/java/ y creo un HelloWorldService

Nuestro primer Servicio tiene este aspecto:

Al ejecutar >mvn install me dará un problema:

Para solucionarlo simplemente añadiré en el pom.xml esta dependencia:

5. Ya puedo lanzar mi Servicio, para eso puedo lanzar el contenedor embebido de Spring Boot con

>mvn spring-boot:run

Si todo ha ido bien veremos una traza como esta:

En la traza podemos fijarnos que hemos arrancado un contexto Spring en un Tomcat con un Servicio REST en 3 segundos!!!

Si me conecto a http://localhost:8080/hello veré lo que esperáis

O http://localhost:8080/hello?name=Luismi

Spring Boot por debajo está ejecutando nuestra aplicación, la clase DemoApplication que se creó automáticamente con el proyecto:

6. Podemos configurar también los actuators que permite monitorizar y gestionar nuestro Servicio (link)

Añadimos la dependencia:

Después añado a mi clase DemoApplicacion estas 2 anotaciones:

@Configuration

@EnableAutoConfiguration

7. Vuelvo a ejecutar la aplicación….ahora puedo ejecutar los actuators, por ejemplo:

http://localhost:8080/beans para ver la lista de Beans de mi aplicación

http://localhost:8080/env para ver las properties de Spring:

http://localhost:8080/metrics para ver métricas de nuestra App:

http://localhost:8080/trace para ver últimas peticiones

Por hoy más que suficiente, en el próximo post hablaremos de Eureka para el registro y localización de Servicios.

UI for Windows Universal

UI for Windows Universal es un producto de Telerik que forma el primer conjunto de controles UI nativos para construer aplicaciones Windows universales.

Sus principales características son:

Existen varias versiones, todas con coste por desarrollador. La versión DevCraft Ultimate incluso tiene soporte para desarrollo sobre iOS y Android.

UI for Windows Universal está compuesta por 18 componentes: