Para todos los que no leísteis este post (y para los despistados que no leen mis correos :D), o para todos esos que ya usáis Spring Roo… (yo espero ponerlo en práctica muy pronto!!)
Spring Boot simplifica la creación de aplicaciones de aplicaciones y servicios Spring extendiendo el concepto de Runtime configurando por debajo el AppServer, Contextos de Spring, monitorización,… todo basado en una aproximación Convention-Over-Configuration.
Spring Boot permite crear aplicaciones standalone o despliegues WAR.
Los objetivos de Spring Boot son (algunos me suenan :D):
· Proveer una forma muy sencilla de arrancar desarrollos Spring
· Ofrecer funcionalidad out-of-the-box pero permitir incorporar las peculiaridades del proyecto
· Proporcionar una serie de características no funcionales comunes a los proyectos (por ejemplo, servidores embebidos, seguridad, indicadores, configuración externalizada)
· No necesitar generación código ni configuración XML
Spring Boot también ofrece una línea de commandos que corre scripts Groovy (Spring Boot CLI), y que permite por ejemplo:
· Crear fichero app.groovy:
· Correrlo desde el Shell:
![]()
· Abrir navegador http://localhost:8080 y ver resultado
También puedo usar Spring Boot sin la consola, veamos en Java este mismo Servicio con Spring Boot:
· Crear clase Java:
· Ejecutar desde Java:
· Abrir navegador http://localhost:8080 y ver resultado
Spring Boot se compone de varios módulos, cada uno con su documentación en el “estándar” .md como Spring Boot Core:
· Provee la funcionalidad Core para el resto de módulos. Tiene muy pocas dependencias para poder usarse desde apls standalone.
· La clase SpringApplication ofrece una forma de arrancar una aplicación Spring:
· La clase SpringApplication permite acceder a las opciones de la línea de comandos
· Ofrece Soporte Embebido a Contenedor de Servlet (mira Miguel, lo que buscábamos) ofreciendo un nuevo ApplicationContext que permite arrancar un contenedor de servlet embebidos. Se ofrece TomcatEmbeddedServletContainerFactory y JettyEmbeddedServletContainerFactory para corer embebidos Tomcat o Jetty.
· Evidentemente también permite personalizar el contenedor con:
· Otra funcionalidad muy interesante es que permite el uso de YAML para hacer configuraciones jerárquicas transformando estas configuraciones a properties, por ejemplo este yaml:
Se transforma a:
Otros módulos interesantes son:
· Spring Boot Actuator que se encarga de arrancar aplicaciones de forma muy sencilla (REST, Spring MVC, Spring Batch,…)
· Spring Boot AutoConfigure permite configurar automáticamente la aplicación Spring en base a las dependencias que use. Se habilita con @EnableAutoConfiguration
y soporta:
o Web (Tomcat or Jetty, Spring MVC)
o JDBC (Commons DBCP, embedded databases, jdbcTemplate)
o JPA with Hibernate
o Spring Data JPA (automatically detecting Repository classes)
o Spring Batch (including JobLauncherCommandLineRunners and database initialization)
o Thymeleaf templating
o Reactor asynchronous JVM programming
Para entender un poco mejor todo lo que nos ofrece Spring Boot os recomiendo echarle un ojo a sus ejemplos en https://github.com/SpringSource/spring-boot/tree/master/spring-boot-samples algunos son impresionantemente sencillos!!!











Deja un comentario