Spring Flashcards

1
Q

Qu’est-ce que Spring Framework et quel est son rôle principal ?

A

Spring Framework est un framework Java qui facilite le développement d’applications Java d’entreprise. Il fournit une infrastructure complète pour le développement de divers types d’applications, notamment les applications web, les applications d’entreprise et les microservices.

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

Expliquez l’Inversion de Contrôle (IoC) dans le contexte de Spring.

A

L’Inversion de Contrôle signifie que le conteneur Spring prend en charge la gestion des objets de l’application. Au lieu que l’application crée directement les objets, le conteneur Spring les instancie et les injecte dans les classes qui en ont besoin.

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

Qu’est-ce que l’injection de dépendances dans Spring ?

A

L’injection de dépendances est un moyen par lequel les composants Spring reçoivent leurs dépendances d’une manière externe plutôt que de les créer elles-mêmes. Cela favorise la modularité et la facilité de test.

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

Différence entre @Component, @Repository, @Service et @Controller.

A

Ce sont des annotations utilisées pour indiquer le rôle d’une classe dans une application Spring. @Component est une annotation générique, @Repository est utilisée pour les classes d’accès aux données, @Service pour les services métier, et @Controller pour les composants responsables du traitement des requêtes HTTP.

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

Expliquez le cycle de vie des beans dans Spring.

A

Le cycle de vie des beans comprend l’instanciation, l’injection des dépendances, l’appel des méthodes d’initialisation et l’appel des méthodes de destruction. Spring gère automatiquement ces phases pour les beans.

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

Qu’est-ce que Spring Boot et quelles sont ses caractéristiques principales ?

A

Spring Boot est un projet de Spring qui simplifie le développement d’applications Spring en fournissant des configurations par défaut, en intégrant des dépendances courantes, et en offrant des fonctionnalités telles que l’auto-configuration.

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

Expliquez l’AOP (Aspect-Oriented Programming) dans le contexte de Spring.

A

L’AOP permet de séparer les préoccupations transversales, comme la journalisation ou la gestion de la sécurité, du code métier. Spring utilise des conseils (aspects) pour appliquer ces préoccupations sans modifier directement le code source.

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

Qu’est-ce que Spring MVC et comment fonctionne-t-il ?

A

Spring MVC est un module du framework Spring pour le développement d’applications web. Il fonctionne en utilisant le modèle MVC (Modèle-Vue-Contrôleur), où le contrôleur gère les requêtes, le modèle représente les données, et la vue affiche ces données.

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

Différence entre singleton et prototype scope dans Spring.

A

En mode singleton, une seule instance du bean est créée par conteneur Spring, tandis qu’en mode prototype, une nouvelle instance est créée à chaque demande.

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

Qu’est-ce que Spring Security et quel est son rôle ?

A

Spring Security est un module qui offre des fonctionnalités de sécurité pour les applications Spring. Il gère l’authentification, l’autorisation, et la protection contre les attaques courantes.

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

Quelles sont les différences entre inversion du contrôle et injection de dépendances dans le contexte Spring ?

A

Dans le contexte de Spring et d’autres frameworks basés sur l’inversion de contrôle (IoC), l’injection de dépendances est une composante clé du principe d’IoC. Voici les différences entre l’inversion de contrôle (IoC) et l’injection de dépendances (DI) :

  1. Inversion de Contrôle (IoC) :
    • Définition : L’IoC signifie que le contrôle de l’exécution d’un programme est inversé. Au lieu que le programmeur contrôle directement le flux d’exécution, le contrôle est inversé et géré par un conteneur ou un framework.
    • Exemple dans Spring : Dans Spring, le conteneur IoC est responsable de créer et de gérer les objets (beans) de l’application. Cela se fait généralement par le biais de la configuration XML ou d’annotations.
  2. Injection de Dépendances (DI) :
    • Définition : La DI est un sous-ensemble de l’IoC. Elle se concentre spécifiquement sur la fourniture des dépendances nécessaires à un composant plutôt que de laisser ce composant les créer ou les chercher.
    • Exemple dans Spring : Dans Spring, la DI consiste à injecter les dépendances nécessaires à un bean (objet) plutôt que de les instancier directement. Cela peut être réalisé par le biais de constructeurs, de setters ou d’injection de champs.
  3. Relation entre IoC et DI :
    • L’IoC est un principe plus large qui englobe la DI. Dans le cas de Spring, IoC signifie que le conteneur prend le contrôle de la gestion des objets, et la DI est l’un des mécanismes utilisés pour réaliser cette inversion de contrôle.
  4. Objectif commun :
    • Tant IoC que DI visent à rendre le code plus modulaire, facile à maintenir et à tester en déplaçant la responsabilité de la gestion des dépendances et de la création d’objets vers le conteneur IoC.

En résumé, IoC est le principe global de délégation du contrôle à un conteneur, tandis que DI est un moyen spécifique utilisé pour atteindre cet objectif en injectant les dépendances nécessaires aux composants de l’application. Dans le contexte de Spring, IoC et DI sont étroitement liés, et la DI est mise en œuvre pour réaliser l’IoC.

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

Quels sont les différents moyens de faire de l’injection de dépendance ?

A

Il existe plusieurs moyens de faire de l’injection de dépendance, notamment :

  1. Injection de dépendance par constructeur : Les dépendances sont passées au constructeur de la classe.
  2. Injection de dépendance par propriété : Les dépendances sont injectées via des propriétés de la classe.
  3. Injection de dépendance par méthode : Les dépendances sont passées à travers des méthodes dédiées.
  4. Conteneurs d’injection de dépendance (IoC) : Utilisation de frameworks tels que Spring, Dagger, Guice, etc., qui gèrent l’injection de dépendance de manière automatique.
  5. Service Locator : Utilisation d’un service locator pour obtenir des instances de dépendances.

Chaque approche a ses avantages et inconvénients, et le choix dépend souvent du contexte et des besoins spécifiques du projet.

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

Quel est le scope d’un bean ?

A

En Spring, le scope d’un bean détermine la durée de vie de l’instance du bean et la portée à laquelle elle est accessible. Spring propose plusieurs scopes de bean, chacun adapté à des besoins spécifiques.
Voici les principaux scopes de bean pris en charge par Spring :

  1. Singleton (par défaut) :

Le bean est créé une seule fois par conteneur Spring et partagé par tous les clients (toutes les requêtes) qui demandent ce bean. C’est le scope par défaut.
java
@Component
public class MonBean {
// …
}

  1. Prototype :

Chaque demande de bean crée une nouvelle instance. Chaque instance du bean est indépendante et peut avoir un état différent.
java
@Scope(“prototype”)
@Component
public class MonBean {
// …
}

  1. Request :

Une instance du bean est créée pour chaque requête HTTP. Valable uniquement dans le contexte d’une application web.

  1. Session :

Une instance du bean est créée pour chaque session utilisateur. Valable uniquement dans le contexte d’une application web.

  1. Global Session :

Comme session, mais valable pour les portlets. Valable uniquement dans le contexte d’une application web.
java
Copy code
@Scope(“globalSession”)
@Component
public class MonBean {
// …
}

  1. Application :

Une seule instance du bean est créée par l’application. Valable uniquement dans le contexte d’une application web.

  1. WebSocket :

Une instance du bean est créée pour chaque session WebSocket. Valable uniquement dans le contexte d’une application web avec support WebSocket.

Le choix du scope dépend des besoins spécifiques de votre application. Les scopes Singleton et Prototype sont les plus couramment utilisés, mais les autres sont également utiles dans des contextes particuliers, tels que les applications web avec des scopes de session ou de requête.

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