Java spring boot Flashcards
Qu’est-ce que Spring Boot et quels sont ses avantages par rapport à Spring Framework ?
Spring Boot est un framework basé sur Spring qui simplifie le développement d’applications Java en fournissant des configurations par défaut et des dépendances prêtes à l’emploi. Ses avantages incluent :
Démarrage rapide avec une configuration minimale.
Une approche opinionnée qui réduit la complexité de la configuration.
Intégration facile avec des systèmes de surveillance et de gestion.
Prise en charge intégrée pour les tests.
Pouvez-vous expliquer le rôle du fichier application.properties ou application.yml dans un projet Spring Boot ?
Les fichiers application.properties ou application.yml sont utilisés pour configurer les propriétés de l’application. Ils permettent de définir des paramètres tels que les configurations de la base de données, les configurations de sécurité, et d’autres paramètres spécifiques à l’application.
Qu’est-ce qu’une classe de configuration dans Spring Boot et comment la crée-t-on ?
Une classe de configuration dans Spring Boot est une classe annotée avec @Configuration qui définit les beans à l’aide de la méthode @Bean. Elle permet de personnaliser et de configurer les composants de l’application.
Quelle est la différence entre @RestController et @Controller ?
@RestController est une combinaison de @Controller et @ResponseBody. Elle est utilisée pour créer des contrôleurs RESTful où chaque méthode renvoie des données JSON ou XML. @Controller est utilisée pour définir un contrôleur MVC qui peut renvoyer des vues HTML.
À quoi sert l’annotation @SpringBootApplication ?
@SpringBootApplication est une annotation de niveau supérieur qui combine @Configuration, @EnableAutoConfiguration, et @ComponentScan. Elle simplifie la configuration de l’application en activant automatiquement les configurations par défaut.
Quelles sont les principales annotations utilisées pour la gestion des dépendances dans Spring ?
Les principales annotations sont @Autowired, @Component, @Service, @Repository, et @Controller. Elles permettent de définir et d’injecter des dépendances automatiquement.
Qu’est-ce que Spring Data JPA et quels sont ses principaux avantages ?
Spring Data JPA est un projet de Spring qui simplifie l’accès aux données en utilisant JPA (Java Persistence API). Ses avantages incluent :
Réduction du code boilerplate pour les opérations CRUD.
Requêtes dynamiques et personnalisées avec des méthodes de nommage.
Intégration facile avec d’autres modules Spring.
Comment définissez-vous une entité JPA et un repository Spring Data JPA ?
Une entité JPA est définie avec l’annotation @Entity et des annotations de mappage comme @Id pour la clé primaire. Un repository Spring Data JPA est une interface qui étend JpaRepository et fournit des méthodes CRUD prêtes à l’emploi.
Comment effectuez-vous des requêtes personnalisées avec Spring Data JPA ?
Vous pouvez définir des méthodes de requête personnalisées dans les interfaces de repository en utilisant des conventions de nommage, des annotations @Query, ou en utilisant Criteria API pour des requêtes plus complexes.
Comment gérez-vous les exceptions globales dans une application Spring Boot ?
Vous pouvez gérer les exceptions globales en utilisant l’annotation @ControllerAdvice et en définissant des méthodes annotées avec @ExceptionHandler.
Pouvez-vous expliquer l’utilisation de @ExceptionHandler et @ControllerAdvice ?
@ExceptionHandler est utilisé pour définir des méthodes qui traitent des exceptions spécifiques. @ControllerAdvice est utilisé pour appliquer globalement des conseils à tous les contrôleurs, ce qui permet de centraliser la gestion des exceptions.
Comment configurez-vous Spring Security dans une application Spring Boot ?
Spring Security peut être configuré en créant une classe de configuration qui étend WebSecurityConfigurerAdapter et en redéfinissant les méthodes configure(HttpSecurity http) et configure(AuthenticationManagerBuilder auth).
Qu’est-ce qu’un UserDetailsService et comment l’implémentez-vous ?
UserDetailsService est une interface utilisée par Spring Security pour récupérer les informations de l’utilisateur afin de les authentifier. Vous pouvez l’implémenter pour charger les détails de l’utilisateur à partir d’une base de données ou d’une autre source.
Pouvez-vous expliquer la différence entre authentification et autorisation ?
L’authentification est le processus de vérification de l’identité de l’utilisateur, généralement via un nom d’utilisateur et un mot de passe. L’autorisation est le processus de vérification des permissions de l’utilisateur pour accéder à des ressources spécifiques après qu’il a été authentifié.
Quelles sont les différences entre les tests unitaires et les tests d’intégration dans le contexte de Spring Boot ?
Les tests unitaires testent des composants individuels de l’application en isolation, sans dépendances externes. Les tests d’intégration testent plusieurs composants ensemble dans un contexte d’application, en incluant les interactions avec des bases de données ou des services externes.