Spring Boot
Aperçu
Spring Boot est un framework Java qui facilite la création d'applications autonomes de qualité production. Il fournit la configuration automatique, des serveurs embarqués et une approche structurée pour créer des API REST et des applications web.
Démarrage rapide
Créer un dépôt à partir du modèle
Sur votre tableau de bord, allez dans l'onglet Tools & Deployment. Cliquez sur le bouton "New Repository", sélectionnez le modèle Spring Boot dans le menu déroulant, saisissez un nom de dépôt et un sous-domaine, puis cliquez sur "Create Repository".
Cloner votre dépôt
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Configurer la base de données
Mettez à jour src/main/resources/application.properties avec les identifiants de votre tableau de bord :
spring.datasource.url=jdbc:mysql://db.<session-domain>:3306/<username>
spring.datasource.username=<username>
spring.datasource.password=<password>
Construire et exécuter
./mvnw spring-boot:run
Le serveur s'exécute par défaut sur http://localhost:8080.
Pousser vos modifications
git add .
git commit -m "Initial setup"
git push origin main
Développement local avec Docker
Si vous n'avez pas Java installé localement, vous pouvez utiliser Docker pour construire et exécuter votre application Spring Boot.
Exécuter des commandes avec Docker
# Construire le projet
docker run --rm -v $(pwd):/app -w /app maven:3-eclipse-temurin-21 ./mvnw clean package -DskipTests
# Exécuter l'application
docker run --rm -v $(pwd):/app -w /app -p 8080:8080 eclipse-temurin:21 java -jar target/*.jar
Configuration de la base de données
La plateforme NStrim met à votre disposition une base de données MySQL/MariaDB. Configurez votre fichier application.properties avec les bons identifiants.
Configuration complète
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). Consultez la section identifiants de votre tableau de bord pour les valeurs exactes.Structure du projet
├── src/
│ └── main/
│ ├── java/com/example/
│ │ ├── Application.java # Point d'entrée Spring Boot
│ │ ├── controllers/ # Contrôleurs REST
│ │ ├── models/ # Entités JPA
│ │ ├── repositories/ # Repositories Spring Data
│ │ └── services/ # Logique métier
│ └── resources/
│ ├── application.properties # Configuration
│ ├── templates/ # Templates Thymeleaf
│ └── static/ # CSS, JS, images
├── pom.xml # Dépendances Maven
└── Dockerfile # Config Docker
Tâches courantes
Créer un contrôleur 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);
}
}
Créer une entité JPA
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// getters et setters
}
Créer un repository
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
}
Commandes utiles
./mvnw spring-boot:run
Démarrer le serveur de développement
./mvnw clean package
Construire le projet
./mvnw test
Exécuter les tests
./mvnw dependency:tree
Afficher l'arbre des dépendances
Dépannage
Communications link failure / Connection refused
Cause : L'hôte de la base de données est incorrect ou non accessible.
Solution : Vérifiez que spring.datasource.url correspond à l'hôte de la base de données indiqué sur votre tableau de bord.
Access denied for user
Cause : Nom d'utilisateur ou mot de passe incorrect.
Solution : Vérifiez que spring.datasource.username et spring.datasource.password correspondent exactement aux identifiants de votre tableau de bord.
Le port 8080 est déjà utilisé
Solution : Ajoutez server.port=8081 à application.properties ou arrêtez l'autre processus.
Whitelabel Error Page (404)
Cause : Aucun contrôleur n'est associé à l'URL demandée.
Solution : Assurez-vous que votre contrôleur a la bonne annotation @RequestMapping et que l'application analyse les bons packages.