Qu’est-ce que Spring Framework et quel est son rôle principal ?
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.
Expliquez l’Inversion de Contrôle (IoC) dans le contexte de Spring.
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.
Qu’est-ce que l’injection de dépendances dans Spring ?
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.
Différence entre @Component, @Repository, @Service et @Controller.
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.
Expliquez le cycle de vie des beans dans Spring.
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.
Qu’est-ce que Spring Boot et quelles sont ses caractéristiques principales ?
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.
Expliquez l’AOP (Aspect-Oriented Programming) dans le contexte de Spring.
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.
Qu’est-ce que Spring MVC et comment fonctionne-t-il ?
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.
Différence entre singleton et prototype scope dans Spring.
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.
Qu’est-ce que Spring Security et quel est son rôle ?
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.
Quelles sont les différences entre inversion du contrôle et injection de dépendances dans le contexte Spring ?
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) :
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.
Quels sont les différents moyens de faire de l’injection de dépendance ?
Il existe plusieurs moyens de faire de l’injection de dépendance, notamment :
Chaque approche a ses avantages et inconvénients, et le choix dépend souvent du contexte et des besoins spécifiques du projet.
Quel est le scope d’un bean ?
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 :
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 {
// …
}
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 {
// …
}
Une instance du bean est créée pour chaque requête HTTP. Valable uniquement dans le contexte d’une application web.
Une instance du bean est créée pour chaque session utilisateur. Valable uniquement dans le contexte d’une application web.
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 {
// …
}
Une seule instance du bean est créée par l’application. Valable uniquement dans le contexte d’une application web.
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.