1. Introducción

Bienvenidos al primer post de este Blog!

Veremos como configurar y arrancar nuestra primera aplicación SpringBoot utilizando gradle como gestor de paquetes.
Os podéis descargar el código de mi GitHub que se encuentra aquí.

Tecnologías empleadas:

  • Java 8
  • Gradle 3.1
  • SpringBoot 1.5.2.RELEASE
  • Spring 4.3.7.RELEASE

2. ¿Qué es Spring Boot?

SpringBoot es una parte del proyecto de Spring que permite levantar aplicaciones web sin necesidad de tener corriendo un contenedor de servlet como Tomcat o un servidor de aplicaciones aparte. Esto es posible ya que la dependencia de SpringBoot nos provee de un tomcat embebido por lo que el despliegue se torna mucho más agil a partir de ahora.

3. Estructura del proyecto

4. Requisitos previos

El proyecto ha sido montado sobre gradle, así que si no lo tienes instalado deberás.

  1. Descargar gradle de la web oficial
  2. Descomprimir los binarios en un directorio dentro de tu filesystem
  3. Importar el directorio /bin del gradle a la variable de entorno PATH

Para verificar que hemos configurado gradle correctamente deberemos hacer

gradle -v

5. Ficheros

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.2.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

sourceCompatibility = 1.8

springBoot {
    mainClass = "com.jorgehernandezramirez.spring.springboot.helloworld.Application"
}

repositories {
    mavenCentral()
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
}

SpringBoot sólo necesita un Main para arrancar. Basta con hacer.

package com.jorgehernandezramirez.spring.springboot.helloworld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public Application(){
        //For Spring
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Nos creamos un controlador donde expondremos nuestro primer servicio Rest

package com.jorgehernandezramirez.spring.springboot.helloworld.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {

    @RequestMapping("/")
    public String doHelloWorld() {
        return "Hello World!";
    }
}

Por defecto SpringBoot arranca en el puerto 8080. Le podemos decir que arranque en otro puerto en el fichero application.yml.

server:
   port: 8081

6. Compilando y arrancando la aplicación.

Para compilar la aplicación deberemos ejecutar

gradle install

Para arrancar una aplicación SpringBoot tenemos diferentes opciones.

Utilizando Java

java -jar HelloWorld-1.0-SNAPSHOT.jar

Utilizando Gradle

gradle bootRun

Utilizando el IDE
En caso de utilizar IntelliJ, puedes arrancar aplicaciones SpringBoot configurando el Edit Configuration.

Una vez arrancado nuestra aplicación nos vamos a http://localhost:8081