Framework Java SpringBoot
SpringBoot est un projet d'extension du framework Spring, visant à simplifier la configuration initiale et le processus de développement des applications Spring.
SpringBoot permet aux développeurs de démarrer et d'exécuter rapidement des applications Spring grâce à la philosophie « convention plutôt que configuration ».
Fonctionnalités principales de SpringBoot
- Auto-configuration: Configure automatiquement les applications Spring en fonction des dépendances jar ajoutées au projet.
- Autonome: Serveurs Tomcat, Jetty ou Undertow embarqués, sans avoir à déployer des fichiers WAR.
- Gestion simplifiée des dépendances: Simplifie la configuration Maven/Gradle via les dépendances starter.
- Prêt pour la production: Fournit des métriques, des contrôles de santé, une configuration externalisée et d'autres fonctionnalités.
- Aucune génération de code: Aucune configuration XML requise.
Composants principaux de SpringBoot
1. SpringBoot Starter
SpringBoot Starter est un ensemble de descripteurs de dépendances pratiques qui vous permettent d'obtenir toutes les technologies dont vous avez besoin en une seule étape. Par exemple :
spring-boot-starter-web: Utilisé pour créer des applications web.spring-boot-starter-data-jpa: Utilisé pour l'accès aux bases de données JPA.spring-boot-starter-test: Utilisé pour les tests.
2. Auto-configuration SpringBoot
SpringBoot configure automatiquement l'application en fonction des packages jar présents dans le classpath. Par exemple, si la base de données H2 se trouve dans le classpath, SpringBoot configurera automatiquement une base de données en mémoire.
3. SpringBoot Actuator
Fournit des fonctionnalités de niveau production pour aider à surveiller et gérer les applications :
- Contrôles de santé de l'application
- Collecte de métriques
- Traçage HTTP
- Informations sur l'environnement
Créez votre première application SpringBoot
1. Créez un projet avec Spring Initializr
Visitezstart.spring.io, sélectionnez :
- Projet Maven
- Langage Java
- Dernière version de SpringBoot
- Ajoutez la dépendance "Web"
2. Structure du projet
Structure typique d'un projet SpringBoot :
src/
main/
java/
com/example/demo/
DemoApplication.java # 主启动类
resources/
application.properties # 配置文件
test/
java/
com/example/demo/
DemoApplicationTests.java # 测试类
3. Écrire un contrôleur REST simple
Exemple
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, SpringBoot!";
}
}
4. Exécuter l'application
ExécutezDemoApplicationla méthode dans la classemain, l'application démarrera sur le port par défaut 8080.
Visiterhttp://localhost:8080/api/helloverrez le message renvoyé "Hello, SpringBoot!".
Configuration SpringBoot
1. Fichiers de configuration
SpringBoot prend en charge plusieurs méthodes de configuration :
application.propertiesapplication.yml- Variables d'environnement
- Arguments de ligne de commande
Exempleapplication.properties:
Exemple
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
2. Configuration multi-environnements
Vous pouvez créer différents fichiers de configuration pour différents environnements :
application-dev.properties: Environnement de développementapplication-prod.properties: Environnement de production
Spécifier l'environnement actif viaspring.profiles.active:
Exemple
Accès aux données SpringBoot
1. Utilisation de Spring Data JPA
Ajouter la dépendance :
Exemple
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
Définir la classe d'entité :
Exemple
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// accesseurs et mutateurs
}
Créer l'interface Repository :
Exemple
List<User> findByName(String name);
}
Utilisation dans la couche service :
Exemple
public class UserService {
@Autowired
private UserRepository userRepository;
public List<User> getUsersByName(String name) {
return userRepository.findByName(name);
}
}
Bonnes pratiques SpringBoot
- Architecture en couches: Respectez le découpage Controller-Service-Repository
- Gestion des exceptions: Utilisez
@ControllerAdvicegestion globale des exceptions - Journalisation: Utilisez SLF4J pour la journalisation
- Tests unitaires: Écrivez suffisamment de tests pour la logique métier
- Documentation de l'API: Intégrez Swagger pour générer la documentation de l'API
Exemple : Gestion globale des exceptions
Exemple
public class GlobalExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<ErrorResponse> handleResourceNotFound(ResourceNotFoundException ex) {
ErrorResponse error = new ErrorResponse(
"NOT_FOUND",
ex.getMessage()
);
return new ResponseEntity<>(error, HttpStatus.NOT_FOUND);
}
}
Sujets avancés SpringBoot
- Spring Security: Authentification et autorisation
- Spring Cloud: Architecture microservices
- Spring Batch: Traitement par lots
- WebFlux: Programmation réactive
- Docker Integration: Déploiement conteneurisé
SpringBoot améliore considérablement l'efficacité de développement des applications Java en simplifiant la configuration et en fournissant des fonctionnalités prêtes à l'emploi. C'est l'un des frameworks indispensables du développement Java moderne.
Autres extensions
Bibliothèques Java courantes