Framework Java SpringBoot

Java 常用类库Bibliothèques Java courantes


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

  1. Auto-configuration: Configure automatiquement les applications Spring en fonction des dépendances jar ajoutées au projet.
  2. Autonome: Serveurs Tomcat, Jetty ou Undertow embarqués, sans avoir à déployer des fichiers WAR.
  3. Gestion simplifiée des dépendances: Simplifie la configuration Maven/Gradle via les dépendances starter.
  4. Prêt pour la production: Fournit des métriques, des contrôles de santé, une configuration externalisée et d'autres fonctionnalités.
  5. 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

@RestController
@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.properties
  • application.yml
  • Variables d'environnement
  • Arguments de ligne de commande

Exempleapplication.properties:

Exemple

server.port=9090
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éveloppement
  • application-prod.properties: Environnement de production

Spécifier l'environnement actif viaspring.profiles.active:

Exemple

spring.profiles.active=dev

Accès aux données SpringBoot

1. Utilisation de Spring Data JPA

Ajouter la dépendance :

Exemple

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

Définir la classe d'entité :

Exemple

@Entité
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

public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByName(String name);
}

Utilisation dans la couche service :

Exemple

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
   
    public List<User> getUsersByName(String name) {
        return userRepository.findByName(name);
    }
}

Bonnes pratiques SpringBoot

  1. Architecture en couches: Respectez le découpage Controller-Service-Repository
  2. Gestion des exceptions: Utilisez@ControllerAdvicegestion globale des exceptions
  3. Journalisation: Utilisez SLF4J pour la journalisation
  4. Tests unitaires: Écrivez suffisamment de tests pour la logique métier
  5. Documentation de l'API: Intégrez Swagger pour générer la documentation de l'API

Exemple : Gestion globale des exceptions

Exemple

@ControllerAdvice
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

  1. Spring Security: Authentification et autorisation
  2. Spring Cloud: Architecture microservices
  3. Spring Batch: Traitement par lots
  4. WebFlux: Programmation réactive
  5. 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.

Java 常用类库Bibliothèques Java courantes

Autres extensions