Vous êtes sur la page 1sur 15

🗒

Review-SPB

1. Qu'est-ce que Maven ?


Réponse : Maven est un outil de gestion de projet qui permet de gérer les
dépendances, de compiler, de tester et de déployer des applications Java de
manière automatisée.

2. Quelles sont les principales fonctionnalités de Maven ?


Réponse :Maven fournit des fonctionnalités telles que la gestion des
dépendances, la compilation, les tests unitaires, la génération de rapports, la
gestion du cycle de vie du projet et le déploiement.

3. Qu'est-ce qu'un Web Service ?


Réponse : Un Web Service est un système logiciel qui permet à des
applications de communiquer et d'échanger des données via le protocole HTTP
ou d'autres protocoles standards du web.

4. Quelles sont les deux principales technologies utilisées pour la mise en


œuvre des Web Services ?
Réponse : Les deux principales technologies utilisées sont SOAP (Simple
Object Access Protocol) et REST (Representational State Transfer).

5. Qu'est-ce que Spring Boot ?


Réponse : Spring Boot est un framework Java qui facilite le développement

Review-SPB 1
d'applications Spring en fournissant une configuration par défaut et des
fonctionnalités prêtes à l'emploi.

6. Quels sont les avantages de l'utilisation de Spring Boot ?


Réponse : Les avantages de Spring Boot incluent une configuration simplifiée,
un démarrage rapide, une meilleure gestion des dépendances et une
productivité accrue pour les développeurs.

7. Qu'est-ce qu'un microservice ?


Réponse : Un microservice est une architecture logicielle qui divise une
application en petits services autonomes, pouvant être développés, déployés et
évolués indépendamment les uns des autres.

8. Quels sont les principaux avantages des microservices par rapport à une
architecture monolithique ?
Réponse : Les principaux avantages des microservices incluent une meilleure
évolutivité, une plus grande flexibilité, une facilité de déploiement et une isolation
des erreurs.

9. Qu'est-ce que Spring Cloud ?


Réponse : Spring Cloud est un ensemble de projets qui fournissent des
fonctionnalités pour le développement d'applications basées sur les
microservices en utilisant Spring Boot.

10. Quelle est la fonctionnalité principale fournie par Spring Cloud Netflix ?
Réponse : Spring Cloud Netflix fournit des fonctionnalités pour la mise en
œuvre de la découverte de services, la gestion de la configuration, la tolérance
aux pannes et l'équilibrage de charge dans un environnement de microservices.

11. Comment définir une dépendance dans un projet Maven ?


Réponse : Une dépendance est définie dans un fichier pom.xml en spécifiant le
groupe, l'identifiant et la version de la dépendance souhaitée.

12. Quelles sont les étapes principales du cycle de vie d'un projet Maven ?
Réponse : Les étapes principales sont : validate, compile, test, package, verify,
install et deploy.

13. Quelle est la différence entre un Web Service SOAP et un Web Service
RESTful ?
Réponse : Un Web Service SOAP utilise le protocole SOAP et une structure
XML pour échanger des données, tandis qu'un Web Service RESTful utilise des
principes REST et des formats légers comme JSON pour les échanges de
données.

Review-SPB 2
14. Qu'est-ce qu'une annotation @RestController en Spring Boot ?
Réponse : L'annotation @RestController est utilisée pour marquer une classe
comme un contrôleur REST dans Spring Boot, ce qui signifie que ses méthodes
renvoient directement des réponses JSON ou XML plutôt que de générer des
vues.

15. Qu'est-ce qu'un API Gateway dans une architecture de microservices ?


Réponse : Un API Gateway est un composant qui sert de point d'entrée central
pour les requêtes client vers les microservices, il gère l'authentification,
l'autorisation, la mise en cache et le routage des requêtes vers les services
appropriés.

16. Qu'est-ce que la tolérance aux pannes dans une architecture de


microservices ?
Réponse : La tolérance aux pannes fait référence à la capacité d'un système à
fonctionner de manière fiable et à gérer les défaillances de manière
transparente, en utilisant des mécanismes tels que la mise en place de circuits
breakers et la gestion des erreurs.

17. Qu'est-ce que Spring Cloud Config Server ?


Réponse : Spring Cloud Config Server est un composant qui permet de stocker
et de distribuer les configurations des microservices de manière centralisée, ce
qui facilite la gestion et le déploiement des configurations.

18. Qu'est-ce que le service de découverte Eureka dans Spring Cloud ?


Réponse : Eureka est un service de découverte qui permet aux microservices
de s'enregistrer et d'être découverts les uns par les autres, facilitant ainsi la
communication et la collaboration entre les services.

19. Qu'est-ce que l'équilibrage de charge basé sur les règles (Rule-based load
balancing) dans Spring Cloud Netflix ?
Réponse : L'équilibrage de charge basé sur les règles est une fonctionnalité de
Spring Cloud Netflix qui permet de définir des règles personnalisées pour
distribuer les requêtes entre les instances de microservices, en utilisant des
métriques ou des stratégies spécifiques.

20. Qu'est-ce que Spring Cloud Sleuth ?


Réponse : Spring Cloud Sleuth est une bibliothèque qui fournit des
fonctionnalités de traçage distribué dans une architecture de microservices,
permettant de suivre et d'analyser le flux d'exécution des requêtes à travers les
différents services.

Review-SPB 3
21. Comment définir un profil dans un projet Maven ?
Réponse : Un profil Maven peut être défini dans le fichier pom.xml en utilisant
l'élément <profiles> et en spécifiant les configurations spécifiques à ce profil.

22. Qu'est-ce qu'un point de terminaison (endpoint) dans le contexte des Web
Services ?
Réponse : Un point de terminaison est l'URL ou l'URI d'un service Web où les
clients peuvent envoyer des requêtes et recevoir des réponses.

23. Qu'est-ce qu'un starter (starter POM) dans Spring Boot ?


Réponse : Un starter est un POM (Project Object Model) prédéfini dans Spring
Boot qui inclut les dépendances nécessaires pour démarrer rapidement un
projet avec certaines fonctionnalités spécifiques, par exemple, le starter spring-
boot-starter-web pour les applications Web.

24. Qu'est-ce qu'un API RESTful dans Spring Boot ?


Réponse : Une API RESTful dans Spring Boot est une API construite en suivant
les principes de l'architecture REST, utilisant les annotations fournies par Spring
pour définir les points de terminaison, les méthodes HTTP et les réponses.

25. Qu'est-ce qu'une architecture de microservices à base d'événements


(event-driven) ?
Réponse : Une architecture de microservices à base d'événements utilise la
communication asynchrone basée sur des événements pour permettre aux
microservices de communiquer et de réagir aux événements qui se produisent
dans le système.

26. Qu'est-ce que Spring Cloud Gateway ?


Réponse : Spring Cloud Gateway est un composant de routage et de filtrage
des requêtes qui permet de gérer de manière flexible et personnalisée le trafic
entre les clients et les microservices dans une architecture de microservices.

27. Qu'est-ce que le service de registre Consul dans Spring Cloud ?


Réponse : Consul est un service de registre fourni par Spring Cloud qui permet
l'enregistrement et la découverte des microservices, ainsi que la gestion de la
configuration et la surveillance de la santé des services.

28. Qu'est-ce que la mise à l'échelle horizontale dans une architecture de


microservices ?
Réponse : La mise à l'échelle horizontale consiste à augmenter ou diminuer le
nombre d'instances de microservices en ajoutant ou en supprimant des

Review-SPB 4
machines ou des conteneurs pour faire face à la demande croissante ou
décroissante.

29. Qu'est-ce que le patron de conception de circuit breaker dans le contexte


des microservices ?
Réponse : Le patron de conception de circuit breaker est utilisé pour gérer les
défaillances et les erreurs dans une architecture de microservices, en
fournissant un mécanisme de protection pour interrompre les appels vers un
service défaillant et éviter les cascades d'erreurs.

30. Qu'est-ce que Spring Cloud Stream ?


Réponse : Spring Cloud Stream est un projet qui facilite la création
d'applications basées sur le modèle de streaming en utilisant Spring Boot et des
liens fonctionnels pour connecter les sources de données, les processeurs et les
destinations de manière déclarative.

31. Qu'est-ce que le plugin Maven Compiler et quel est son rôle ?
Réponse : Le plugin Maven Compiler est utilisé pour compiler les sources Java
du projet selon la version spécifiée dans la configuration. Il génère les fichiers
.class correspondants.

32. Qu'est-ce que le protocole SOAP (Simple Object Access Protocol) ?


Réponse : Le protocole SOAP est un protocole basé sur XML utilisé pour
l'échange de messages structurés entre des applications distribuées. Il est
souvent utilisé dans les Web Services.

33. Qu'est-ce que l'inversion de contrôle (IoC) dans le contexte de Spring Boot
?
Réponse : L'inversion de contrôle (IoC) est un principe selon lequel la
responsabilité de la création et de la gestion des objets est déléguée à un
conteneur (comme Spring), permettant une meilleure modularité et une
réduction des dépendances directes entre les classes.

34. Quelle est la différence entre les annotations @Component , @Service et


@Repository dans Spring Boot ?

Réponse : Les annotations @Component , @Service et @Repository sont toutes des


dérivées de @Component et sont utilisées pour marquer les classes en tant que
composants Spring, avec des rôles sémantiques spécifiques (général, service,
repository).

35. Qu'est-ce que le modèle de déploiement "containerization" dans le


contexte des microservices ?

Review-SPB 5
Réponse : Le modèle de déploiement "containerization" consiste à encapsuler
les microservices et leurs dépendances dans des conteneurs légers et
autonomes (comme Docker) pour faciliter le déploiement et la portabilité.

36. Qu'est-ce que Spring Cloud Config Client ?


Réponse : Spring Cloud Config Client est une bibliothèque qui permet aux
microservices de récupérer leurs configurations à partir du serveur de
configuration centralisé (Spring Cloud Config Server).

37. Qu'est-ce que le "service discovery" dans le contexte des microservices ?


Réponse : Le "service discovery" est le processus par lequel les microservices
s'enregistrent et découvrent mutuellement leurs emplacements, permettant ainsi
une communication dynamique et transparente entre eux.

38. Qu'est-ce que le "circuit breaker pattern" et comment cela peut aider dans
une architecture de microservices ?
Réponse : Le "circuit breaker pattern" est un modèle de conception qui permet
de gérer les défaillances et de prévenir les effets en cascade en interrompant
temporairement les appels vers un service défaillant, offrant ainsi une meilleure
résilience et stabilité au système.

39. Qu'est-ce que le projet Spring Cloud Netflix Hystrix ?


Réponse : Spring Cloud Netflix Hystrix est un projet qui fournit des
fonctionnalités de gestion des défaillances et de résilience pour les
microservices, notamment en utilisant le "circuit breaker pattern" pour contrôler
les appels entre les services.

40. Qu'est-ce que Spring Cloud Data Flow ?


Réponse : Spring Cloud Data Flow est une plateforme qui permet de concevoir,
développer et déployer des pipelines de traitement de données en utilisant des
microservices et des outils adaptés pour les flux de données.

41. Qu'est-ce qu'un repository Maven et quel est son rôle ?


Réponse : Un repository Maven est un emplacement où les dépendances et les
plugins Maven sont stockés et peuvent être récupérés lors de la construction
d'un projet. Il peut être local ou distant.

42. Qu'est-ce que JAX-RS dans le contexte des Web Services ?


Réponse : JAX-RS (Java API for RESTful Web Services) est une spécification
Java qui fournit des annotations et des classes pour simplifier le développement
de services Web RESTful.

Review-SPB 6
43. Quelle est la différence entre une annotation @RestController et une
annotation @Controller en Spring Boot ?
Réponse : @RestController est une combinaison de @Controller et @ResponseBody ,
indiquant que les méthodes renvoient directement des réponses JSON ou XML,
tandis que @Controller est généralement utilisé pour renvoyer des vues.

44. Qu'est-ce que le "service mesh" dans une architecture de microservices ?


Réponse : Le "service mesh" est une infrastructure de réseau dédiée aux
microservices, qui fournit des fonctionnalités de gestion du trafic, de sécurité, de
suivi et de monitoring entre les services.

45. Qu'est-ce que Spring Cloud Config Bus ?


Réponse : Spring Cloud Config Bus est une fonctionnalité qui permet de
rafraîchir les configurations des microservices de manière dynamique et
centralisée en utilisant des messages diffusés sur un bus (comme RabbitMQ ou
Kafka).

46. Qu'est-ce que l'autorisation basée sur les rôles (role-based authorization)
dans Spring Security ?
Réponse : L'autorisation basée sur les rôles consiste à définir des rôles (par
exemple, "ADMIN", "USER") et à accorder ou refuser l'accès à certaines
ressources en fonction du rôle de l'utilisateur connecté.

47. Qu'est-ce que l'équilibrage de charge basé sur les algorithmes (algorithm-
based load balancing) dans Spring Cloud Netflix ?
Réponse : L'équilibrage de charge basé sur les algorithmes permet de distribuer
les requêtes entre les instances de microservices en utilisant des algorithmes
spécifiques tels que le Round Robin, le poids ou le meilleur temps de réponse.

48. Qu'est-ce que le service de configuration et de gestion des secrets Vault


dans Spring Cloud ?
Réponse : Vault est un service de configuration et de gestion des secrets fourni
par Spring Cloud, qui permet de stocker en toute sécurité des informations
sensibles telles que des mots de passe, des clés d'API, etc.

49. Qu'est-ce que le découpage (slicing) dans Spring Boot ?


Réponse : Le découpage est une fonctionnalité de Spring Boot qui permet de
diviser une application en modules fonctionnels appelés "slices" (par exemple,
"Web slice", "Data slice") pour faciliter les tests et le développement.

50. Qu'est-ce que Spring Cloud Stream Binder ?


Réponse : Spring Cloud Stream Binder est une abstraction qui permet d'utiliser

Review-SPB 7
différents systèmes de messagerie (comme Kafka, RabbitMQ) comme backend
pour la communication asynchrone entre les microservices.

51. Maven est un outil utilisé pour la gestion de projets basés sur Java. Vrai ou
faux ?

(Vrai)

52. Quelle est la structure de base d'un projet Maven ?

(Un fichier pom.xml à la racine du projet)

53. Quelle balise est utilisée pour définir une dépendance dans le fichier
pom.xml de Maven ?

(<dependency>)

54. Quelle est la différence entre les scopes "compile" et "runtime" dans
Maven ?
("compile" indique que la dépendance est nécessaire à la compilation et à
l'exécution, tandis que "runtime" indique que la dépendance est nécessaire
uniquement à l'exécution)

55. Qu'est-ce que SOAP (Simple Object Access Protocol) dans le contexte des
Web Services ?

(Un protocole basé sur XML pour l'échange de messages entre applications
distribuées)

56. Quelle est la différence entre un Web Service SOAP et un Web Service
RESTful ?

(SOAP utilise XML et des protocoles spécifiques, tandis que RESTful utilise des
formats de données légers comme JSON et des méthodes HTTP)

57. Quelle annotation est utilisée pour créer un Web Service RESTful dans
Spring Boot ?
(@RestController)

58. Quelle est la principale caractéristique d'une architecture de microservices


?
(La décomposition d'une application en services autonomes et indépendants)

59. Quel est l'avantage principal de l'utilisation de Spring Boot pour le


développement de microservices ?

Review-SPB 8
(Il fournit un cadre de développement rapide et facilite la configuration et la
gestion des services)

60. Qu'est-ce que Spring Cloud dans le contexte des microservices ?

(Un ensemble d'outils et de bibliothèques pour faciliter le développement de


systèmes basés sur des microservices)

61. Quelle est la fonction principale de Spring Cloud Eureka ?


(La découverte et l'enregistrement des services)

62. Qu'est-ce que l'équilibrage de charge (load balancing) dans une


architecture de microservices ?
(La distribution équitable du trafic entre plusieurs instances d'un service)

63. Quelle est la fonction de Spring Cloud Config dans une architecture de
microservices ?
(La gestion centralisée des configurations pour les services)

64. Qu'est-ce que le service de passerelle (gateway) dans Spring Cloud ?


(Un point d'entrée unique pour les requêtes des clients, qui les redirige vers les
services appropriés)

65. Qu'est-ce que Spring Cloud Sleuth ?

(Une bibliothèque pour la traçabilité et la surveillance des requêtes entre les


services)

66. Quelle annotation est utilisée pour sécuriser les points de terminaison
(endpoints) dans Spring Boot ?
(@Secured ou @PreAuthorize)

67. Qu'est-ce que Spring Cloud Stream dans le contexte des microservices ?

(Un framework pour la création de pipelines de traitement de données basés


sur des flux)

68. Qu'est-ce que le protocole HTTP dans le contexte des Web Services ?
(Un protocole de communication client-serveur utilisé pour le transfert de
données)

69. Quelle est la signification de l'acronyme REST ?


(Representational State Transfer)

Review-SPB 9
70. Qu'est-ce que l'inversion de contrôle (IoC) dans le contexte de Spring Boot
?

(Un principe selon lequel la responsabilité de la création et de la gestion des


objets est déléguée à un conteneur)

Liste de dix questions portant sur les annotations


couramment utilisées dans le développement avec
Spring Boot :

1. Quelle annotation est utilisée pour définir une classe en tant que
composant géré par Spring ?

(@Component)

2. Quelle annotation est utilisée pour définir une classe en tant que service
dans Spring ?

(@Service)

3. Quelle annotation est utilisée pour définir une classe en tant que
repository dans Spring ?

(@Repository)

4. Quelle annotation est utilisée pour définir une classe en tant que
contrôleur REST dans Spring Boot ?

(@RestController)

5. Quelle annotation est utilisée pour mapper une méthode à une URL
spécifique dans un contrôleur REST ?

(@RequestMapping)

6. Quelle annotation est utilisée pour injecter une dépendance dans une
classe dans Spring ?

(@Autowired)

7. Quelle annotation est utilisée pour indiquer qu'une méthode doit être
exécutée avant le démarrage de l'application Spring Boot ?

(@PostConstruct)

Review-SPB 10
8. Quelle annotation est utilisée pour spécifier une propriété de configuration
dans Spring Boot ?
(@Value)

9. Quelle annotation est utilisée pour définir une transaction dans une
méthode ou une classe dans Spring ?

(@Transactional)

10. Quelle annotation est utilisée pour gérer les exceptions dans une méthode
ou une classe dans Spring ?
(@ExceptionHandler)

11. Quelle annotation est utilisée pour configurer la logique de traitement des
requêtes GET dans un contrôleur REST ?
(@GetMapping)

12. Quelle annotation est utilisée pour configurer la logique de traitement des
requêtes POST dans un contrôleur REST ?
(@PostMapping)

13. Quelle annotation est utilisée pour configurer la logique de traitement des
requêtes PUT dans un contrôleur REST ?
(@PutMapping)

14. Quelle annotation est utilisée pour configurer la logique de traitement des
requêtes DELETE dans un contrôleur REST ?

(@DeleteMapping)

15. Quelle annotation est utilisée pour valider les données d'une requête dans
Spring Boot ?
(@Valid)

16. Quelle annotation est utilisée pour indiquer qu'une méthode ou une classe
est liée à une session HTTP dans Spring Boot ?
(@SessionAttributes)

17. Quelle annotation est utilisée pour définir les paramètres d'une requête
HTTP dans une méthode de contrôleur REST ?
(@RequestParam)

Review-SPB 11
18. Quelle annotation est utilisée pour accéder aux attributs d'une requête
HTTP dans une méthode de contrôleur REST ?
(@PathVariable)

19. Quelle annotation est utilisée pour indiquer qu'une classe ou une méthode
doit être ignorée lors de la configuration automatique de Spring Boot ?
(@SpringBootApplication(exclude = ...))

20. Quelle annotation est utilisée pour spécifier l'ordre d'exécution des beans
dans Spring Boot ?

(@Order)

21. Quelle annotation est utilisée pour définir la portée d'un bean dans Spring
Boot ?
(@Scope)

22. Quelle annotation est utilisée pour activer la sécurité basée sur les rôles
dans Spring Boot ?

(@EnableGlobalMethodSecurity)

23. Quelle annotation est utilisée pour définir la configuration de sécurité dans
Spring Boot ?
(@EnableWebSecurity)

24. Quelle annotation est utilisée pour activer la configuration de cache dans
Spring Boot ?
(@EnableCaching)

25. Quelle annotation est utilisée pour configurer la connexion à une base de
données dans Spring Boot ?
(@ConfigurationProperties)

26. Quelle annotation est utilisée pour marquer une méthode comme étant
asynchrone dans Spring Boot ?
(@Async)

27. Quelle annotation est utilisée pour configurer les événements de cycle de
vie d'un bean dans Spring Boot ?
(@EventListener)

Review-SPB 12
28. Quelle annotation est utilisée pour intercepter les appels de méthode dans
Spring Boot ?
(@Aspect)

29. Quelle annotation est utilisée pour définir la configuration de messagerie


dans Spring Boot ?
(@EnableJms)

30. Quelle annotation est utilisée pour configurer l'injection de dépendances


dans une classe de configuration dans Spring Boot ?
(@Autowired)

31. Quelle annotation est utilisée pour indiquer qu'une classe doit être
scannée lors de la configuration automatique de Spring Boot ?
(@ComponentScan)

32. Quelle annotation est utilisée pour configurer une classe comme un point
d'accès aux requêtes SOAP dans Spring Boot ?
(@Endpoint)

33. Quelle annotation est utilisée pour configurer la sérialisation et la


désérialisation des objets JSON dans Spring Boot ?
(@JsonSerialize / @JsonDeserialize)

34. Quelle annotation est utilisée pour spécifier les conditions d'exécution
d'un bean dans Spring Boot ?
(@Conditional)

35. Quelle annotation est utilisée pour configurer les intercepteurs de


requêtes HTTP dans Spring Boot ?
(@Interceptor)

36. Quelle annotation est utilisée pour configurer l'injection de dépendances


par type dans Spring Boot ?
(@Autowired)

37. Quelle annotation est utilisée pour configurer la gestion des transactions
dans Spring Boot ?
(@EnableTransactionManagement)

Review-SPB 13
38. Quelle annotation est utilisée pour configurer l'authentification basée sur
les jetons (token-based authentication) dans Spring Boot ?
(@EnableOAuth2Sso)

39. Quelle annotation est utilisée pour activer la planification des tâches dans
Spring Boot ?
(@EnableScheduling)

40. Quelle annotation est utilisée pour configurer les filtres de requêtes dans
Spring Boot ?

(@Filter)

41. Quelle annotation est utilisée pour configurer l'utilisation des templates de
vues dans Spring Boot ?

(@EnableWebMvc)

42. Quelle annotation est utilisée pour configurer les autorisations d'accès aux
points de terminaison dans Spring Boot ?

(@PreAuthorize)

43. Quelle annotation est utilisée pour marquer une classe ou une méthode
comme étant éligible à la validation dans Spring Boot ?

(@Validated)

44. Quelle annotation est utilisée pour spécifier les propriétés d'une requête
HTTP dans une méthode de contrôleur REST dans Spring Boot ?
(@RequestBody)

45. Quelle annotation est utilisée pour gérer les exceptions spécifiques dans
Spring Boot ?

(@ExceptionHandler)

46. Quelle annotation est utilisée pour définir la configuration d'un client REST
dans Spring Boot ?

(@RestClient)

47. Quelle annotation est utilisée pour définir une condition d'activation d'un
bean dans Spring Boot ?

(@ConditionalOnProperty)

Review-SPB 14
48. Quelle annotation est utilisée pour définir la configuration de sécurité
basée sur les expressions dans Spring Boot ?
(@EnableGlobalMethodSecurity)

49. Quelle annotation est utilisée pour configurer les filtres de requêtes au
niveau des méthodes de contrôleur REST dans Spring Boot ?
(@RequestMapping)

50. Quelle annotation est utilisée pour spécifier la portée d'un bean dans
Spring Boot ?
(@Scope)

Review-SPB 15

Vous aimerez peut-être aussi