Java spring boot Flashcards

1
Q

Qu’est-ce que Spring Boot et quels sont ses avantages par rapport à Spring Framework ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Pouvez-vous expliquer le rôle du fichier application.properties ou application.yml dans un projet Spring Boot ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qu’est-ce qu’une classe de configuration dans Spring Boot et comment la crée-t-on ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quelle est la différence entre @RestController et @Controller ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

À quoi sert l’annotation @SpringBootApplication ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quelles sont les principales annotations utilisées pour la gestion des dépendances dans Spring ?

A

Les principales annotations sont @Autowired, @Component, @Service, @Repository, et @Controller. Elles permettent de définir et d’injecter des dépendances automatiquement.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce que Spring Data JPA et quels sont ses principaux avantages ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Comment définissez-vous une entité JPA et un repository Spring Data JPA ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Comment effectuez-vous des requêtes personnalisées avec Spring Data JPA ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Comment gérez-vous les exceptions globales dans une application Spring Boot ?

A

Vous pouvez gérer les exceptions globales en utilisant l’annotation @ControllerAdvice et en définissant des méthodes annotées avec @ExceptionHandler.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Pouvez-vous expliquer l’utilisation de @ExceptionHandler et @ControllerAdvice ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Comment configurez-vous Spring Security dans une application Spring Boot ?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce qu’un UserDetailsService et comment l’implémentez-vous ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Pouvez-vous expliquer la différence entre authentification et autorisation ?

A

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é.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quelles sont les différences entre les tests unitaires et les tests d’intégration dans le contexte de Spring Boot ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Comment utilisez-vous @SpringBootTest pour les tests d’intégration ?

A

@SpringBootTest démarre le contexte complet de l’application Spring pour les tests d’intégration. Vous pouvez l’utiliser pour tester des interactions entre les composants de l’application.

17
Q

Comment moquez-vous des composants avec Mockito dans Spring Boot ?

A

Vous pouvez utiliser Mockito pour créer des objets mock et les injecter dans les tests. Utilisez @Mock pour créer un mock et @InjectMocks pour injecter le mock dans le composant testé.

18
Q
A