En este documento se muestra lo básico para empezar a usar Spring Boot en Java.
Para revisar que funciona, ir a localhost:80 en su navegador.
Siempre inicia con estas dependencias en el pom.xml:
<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>
</dependency>
</dependencies>
- Spring Boot DevTools: Casi siempre se usa, mejora el rendimiento.
- Spring Web: También se debe usar.
- MySQL Driver: Para trabajar con MySQL.
- Spring Data Reactive MongoDB: Para trabajar con MongoDB.
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Los strings que se retornan deben tratarse como HTML, no como Java.
package com.example.demo;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "/api")
public class HolaMundoController {
@GetMapping(value = "/holamundo")
public String desplegarHolaMundo() {
return "Hola mundo";
}
}
Ejemplo de uso:
package com.example.demo;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "/api")
public class CuadradoController {
@GetMapping(value = "/cuadrado")
public String desplegarId(@RequestParam int x) {
return "Cuadrado: " + Math.pow(x, 2);
}
}
Ejemplo de uso:
package com.example.demo;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "/api")
public class IdController {
@GetMapping(value = "/id")
public String desplegarId(@RequestParam int id, @RequestParam String nombre) {
// Nota importante: HTML no reconoce \n, pero <br> si
return "Nombre: " + nombre + "<br>ID: " + id;
}
}
Ejemplo de uso:
package com.example.demo;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "/api")
public class NombreController {
@GetMapping(value = "/nombre")
public String desplegarNombre(@RequestParam(required = false) String nombre) {
return "Nombre: " + nombre;
}
}
Ejemplo de uso:
package com.example.demo;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "/api")
public class TestController {
@GetMapping(value = "/test")
public String desplegarNombre(@RequestParam(defaultValue = "Test") String nombre) {
return "Nombre: " + nombre;
}
}
Ejemplo de uso:
package com.example.demo;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping(value = "/api")
public class MapController {
@GetMapping(value = "/map")
public String desplegarParametros(@RequestParam Map<String, String> parametros) {
// Después se puede trabajar con ellos usando sus claves
return "Parámetros ingresados: " + parametros.entrySet();
}
}
Ejemplo de uso:
package com.example.demo;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(value = "/api")
public class SumaController {
@GetMapping(value = "/suma")
public String desplegarSuma(@RequestParam List<Integer> numeros) {
int suma = 0;
for (int n : numeros) {
suma += n;
}
return "Números ingresados: " + numeros.toString() + "<br>Suma: " + suma;
}
}
Ejemplo de uso: