Spring boot proporciona una serie de iniciadores o starters que nos permiten añadir jar en la ruta de clases. Los starters incorporados en SpringBoot hacen que el desarrollo sea más fácil y rápido, todos los starters contienen una nomenclatura similar, spring-boot-starter- *, donde * denota un tipo particular de aplicación. Por ejemplo, si queremos usar Spring y JPA para el acceso a la base de datos, necesitamos incluir la dependencia spring-boot-starter-data-jpa en nuestro archivo pom.xml del proyecto.
En la tabla que se presenta a continuación, se hace relación de algunos starters con su descripción.
|
Nombre |
Descripción |
|
spring-boot-starter-web |
Utilizado para crear aplicaciones web, incluidas las aplicaciones RESTful que utilizan Spring MVC. Utiliza Tomcat como contenedor integrado predeterminado. |
|
spring-boot-starter-test |
Es usado para probar aplicaciones SpringBoot con bibliotecas, incluidas JUnit, Hamcrest y Mockito |
|
spring-boot-starter-jdbc |
Se utiliza para JDBC con el grupo de conexiones Tomcat JDBC |
|
spring-boot-starter |
Para soporte de configuración automática, el registro y YAML |
|
spring-boot-starter-data-mongodb |
Se usa para la base de datos orientada a documentos MongoDB y Spring Data MongoDB |
|
spring-boot-starter-cloud-connectors |
Se usa para Spring cloud connectors, simplifica la conexión a servicios en plataformas en la nube como Cloud Foundry y Heroku |
|
spring-boot-starter-actuator |
Se utiliza para el actuador de Spring boot que proporciona funciones listas para producción y así ayudar a monitorear y administrar la aplicación |
|
spring-boot-starter-tomcat |
Se utiliza para Tomcat como contenedor de servlets integrado |
Como los anteriores, existen otra gran cantidad de starters que nos ayudan a agilizar los desarrollos que llevemos a cabo, para conocerlos podemos ir a la documentación oficial de SpringBoot a través del link https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot
Para la creación de un proyecto de Spring Boot, existen dos caminos, la primera es instalando y utilizando Maven o Gradle para crear manualmente todo el marco del proyecto, incluidas las dependencias; o la segunda, utilizando el servicio web Spring initializr, el cual es un servicio que nos ayuda a establecer la configuración básica de spring boot y nos permite descargar la plantilla como proyecto final.
Para el ejercicio utilizaremos el servicio web Spring initializr, en el cual solo tendremos que establecer los parámetros que nos piden ingresando a la URL https://start.spring.io/
. Los parámetros exigidos por la página son:
Sistema de compilación (Maven), el lenguaje en el que se trabajará (Java), versión de Spring Boot, los metadatos del proyecto, el formato de archivo en que se descargará y la versión de Java, finalmente, en caso de requerir añadir dependencias, este servicio nos ofrece la posibilidad de añadirlos, por ahora solo se añadirá la dependencia Spring web.
Cuando se haya establecido los parámetros de la configuración, tendremos tres opciones: Generate (Descargar nuestro proyecto), Explore (Visualizar lo que hasta el momento llevamos) y Share (que generará una URL para compartirlo con alguien). Seleccionaremos Generate, para descargarlo y abrirlo desde Eclipse.

Una vez descargada e incluida en nuestro Entorno de desarrollo (Eclipse), tendremos lo siguiente en el archivo pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.springboot</groupId> <artifactId>spring</artifactId> <version>0.0.1-SNAPSHOT</version> <name>spring</name> <description>Demo project for Spring Boot</description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
package com.springboot.spring; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Si corremos nuestra aplicación web, como esta, pues no pasará mucho, por lo que si deseamos ver algo concreto, debemos crear una clase, que para el ejemplo se llamara HelloRest y adicionamos el siguiente código.
package com.springboot.spring; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloRest { @RequestMapping("/hello") public String helloWorld() { return "Hello everyone"; } }
Lo anterior indica que HelloRest será un controlador Rest y como saben @RequestMapping nos dará la ruta al momento de ingresar la URL, ahora solo tendremos que ejecutar el proyecto con JavaApplication y se nos abrirá la consola de spring que hace el despliegue de la aplicación sobre el Tomcat embebido.

Si ingresamos al navegador y entramos a la URL http://localhost:8080/hello, veremos algo como lo siguiente

Como pueden notar, usar Spring Boot aparte de sencillo es fácil y rápido para realizar la configuración respecto a Spring Core, lo que permite ahorrar tiempo en el desarrollo de las aplicaciones en el próximo apartado, veremos algunos ejemplos desde una perspectiva general, como implementar pruebas unitarias en proyectos con Spring Boot.