Spring Boot
Descripción general
Spring Boot es un framework de Java que facilita la creación de aplicaciones autónomas y de calidad para producción. Ofrece autoconfiguración, servidores embebidos y un enfoque opinado para construir APIs REST y aplicaciones web.
Inicio rápido
Crear repositorio desde plantilla
En tu panel, ve a la pestaña Tools & Deployment. Haz clic en el botón "New Repository", selecciona la plantilla de Spring Boot del menú desplegable, introduce un nombre de repositorio y un subdominio, y luego haz clic en "Create Repository".
Clona tu repositorio
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Configura la base de datos
Actualiza src/main/resources/application.properties con las credenciales de tu panel:
spring.datasource.url=jdbc:mysql://db.<session-domain>:3306/<username>
spring.datasource.username=<username>
spring.datasource.password=<password>
Compila y ejecuta
./mvnw spring-boot:run
El servidor se ejecuta en http://localhost:8080 por defecto.
Sube tus cambios
git add .
git commit -m "Initial setup"
git push origin main
Desarrollo local con Docker
Si no tienes Java instalado localmente, puedes usar Docker para compilar y ejecutar tu aplicación Spring Boot.
Ejecutar comandos con Docker
# Build the project
docker run --rm -v $(pwd):/app -w /app maven:3-eclipse-temurin-21 ./mvnw clean package -DskipTests
# Run the application
docker run --rm -v $(pwd):/app -w /app -p 8080:8080 eclipse-temurin:21 java -jar target/*.jar
Configuración de la base de datos
La plataforma NStrim te proporciona una base de datos MySQL/MariaDB. Configura tu archivo application.properties con las credenciales correctas.
Configuración completa
spring.datasource.url=jdbc:mysql://db.<session-domain>:3306/<username>
spring.datasource.username=<username>
spring.datasource.password=<password>
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
student01). Consulta la sección de credenciales de tu panel para los valores exactos.Estructura del proyecto
├── src/
│ └── main/
│ ├── java/com/example/
│ │ ├── Application.java # Punto de entrada de Spring Boot
│ │ ├── controllers/ # Controladores REST
│ │ ├── models/ # Entidades JPA
│ │ ├── repositories/ # Repositorios Spring Data
│ │ └── services/ # Lógica de negocio
│ └── resources/
│ ├── application.properties # Configuración
│ ├── templates/ # Plantillas Thymeleaf
│ └── static/ # CSS, JS, imágenes
├── pom.xml # Dependencias Maven
└── Dockerfile # Configuración Docker
Tareas comunes
Crear un controlador REST
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping
public List<User> getAll() {
return userRepository.findAll();
}
@PostMapping
public User create(@RequestBody User user) {
return userRepository.save(user);
}
}
Crear una entidad JPA
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// getters and setters
}
Crear un repositorio
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
}
Comandos útiles
./mvnw spring-boot:run
Iniciar el servidor de desarrollo
./mvnw clean package
Compilar el proyecto
./mvnw test
Ejecutar tests
./mvnw dependency:tree
Mostrar el árbol de dependencias
Resolución de problemas
Communications link failure / Connection refused
Causa: El host de la base de datos es incorrecto o no es accesible.
Solución: Comprueba que spring.datasource.url coincide con el host de la base de datos de tu panel.
Access denied for user
Causa: Nombre de usuario o contraseña incorrectos.
Solución: Comprueba dos veces que spring.datasource.username y spring.datasource.password coinciden exactamente con las credenciales de tu panel.
El puerto 8080 ya está en uso
Solución: Añade server.port=8081 a application.properties o detén el otro proceso.
Whitelabel Error Page (404)
Causa: Ningún controlador está mapeado a la URL solicitada.
Solución: Asegúrate de que tu controlador tiene la anotación @RequestMapping correcta y de que la aplicación está escaneando los paquetes adecuados.