25 top spring mvc interview questions
Questions d'entrevue Spring MVC les plus populaires avec réponses pour les candidats débutants et expérimentés:
Spring est un framework puissant utilisé dans le monde entier par les développeurs Java pour développer une application Web Java Enterprise.
Spring MVC représente la vue du modèle et le contrôleur. Tout comme les autres frameworks Struts, Spring est également basé sur les technologies J2EE qui sont JSP et Servlet ainsi que l'implémentation du modèle de conception, de la vue et du contrôleur.
Ici, nous explorerons les questions d'entretien Spring MVC les plus fréquemment posées avec des exemples.
Ce que vous apprendrez:
sites pour télécharger des vidéos sur youtube
Architecture Spring MVC
L'architecture MVC a de nombreuses classes et composants intégrés qui sont toujours disponibles pour que les développeurs développent une application forte et faiblement couplée.
Un couplage lâche signifie qu'il ne devrait pas y avoir de dépendances codées en dur entre les classes. Ceci, à son tour, rend la tâche assez complexe lorsqu'il s'agit de modifier le code ou les fonctionnalités de l'application.
L'architecture MVC a ses propres fonctions indépendantes. La couche modèle comprend toutes les classes POJO et aide à l'encapsulation des données. La couche de vue est utilisée pour rendre les données présentes dans la couche de modèle et continue de générer une sortie au format HTML pour le client qui la reçoit généralement dans un navigateur Web.
Enfin, le contrôleur est responsable du traitement des demandes et de la construction du modèle correct et envoie ainsi la réponse à la couche vue ou présentation.
Dans cet article, vous passerez en revue tous les sujets importants de Spring MVC comme mentionné ci-dessous:
- Le principe de fonctionnement de Spring MVC
- Architecture printanière
- Le concept de servlet de répartiteur
- Cartographie des gestionnaires
- Manette
- Afficher la résolution
- Différentes couches de Spring MVC
- Spring core, avantages de l'utilisation de Spring MVC
- Modules à ressort
- AOP
- Langue d'expression
- Couche d'accès aux données
- Module Web
- Aspects
- Test, etc.
- Inversion de contrôle et injection de dépendances, à propos des fichiers pom.xml.
Jetons un coup d'œil aux avantages et aux inconvénients de Spring MVC !!
Avantages de Spring MVC
Voici les différents avantages de Spring MVC:
- Comme il est très petit, il offre des performances élevées avec moins de problèmes.
- Il a une productivité élevée qui à son tour augmente le développement.
- Il est hautement sécurisé car il utilise Spring SPI et est principalement utilisé par toutes les banques pour leurs applications Web.
- Nous pouvons développer des applications modulaires, car il prend en charge la vue modèle et l'architecture de contrôleur.
- Il prend en charge le développement complet piloté par les tests, ce qui est trop bon.
- Jusqu'à présent, il est le mieux adapté pour les applications Web de développement agile partout dans le monde par les développeurs.
- Il a une fonction de séparation des responsabilités et des rôles qui simplifie les tâches.
- Il prend en charge le service RESTful.
- Il prend en charge les thèmes, l'internationalisation, d'autres cadres de base de données, JPA, plusieurs vues et le soutien de la communauté.
Contre de Spring MVC
Donnez ci-dessous quelques-uns des inconvénients de Spring MVC:
- La courbe d'apprentissage du framework Spring et de son architecture MVC est un peu complexe pour les développeurs car elle comporte peu de concepts complexes.
- Spring a une nature changeante comme celles basées sur XML ou basées sur des annotations et cela devient parfois difficile à suivre.
- Très moins de spécifications dans Spring MVC.
- Si le fichier jar n'est pas disponible, l'application ne fonctionnera pas correctement.
- De très gros problèmes de configuration, de nombreux contrôleurs à gérer, de nombreux résolveurs de vues à contrôler, etc.
Questions d'entretiens chez Spring MVC
Vous trouverez ci-dessous les questions d'entretien les plus importantes pour Spring MVC. Essayez de comprendre le concept de chaque question, de sorte qu'il soit très utile de l'expliquer à l'intervieweur. Essayez toujours de donner ou de corréler avec des exemples d'applications en temps réel. Ceux-ci sont également utiles pour les professionnels expérimentés.
Q # 1) Qu'est-ce que Spring Framework et pourquoi est-il si populaire?
Répondre: Spring Framework est un framework léger utilisé pour développer des applications Web Java faiblement couplées.
Il fournit un conteneur intégré, une injection de dépendances et une architecture MVC. Il est très populaire car il permet le découplage, la réutilisation et fournit des modèles de conception tels que singleton, usine pour réduire la longueur du code, etc., supprime également les connexions faibles et offre une intégration puissante avec le tiers.
Q # 2) Qu'est-ce que Spring MVC?
Répondre: Spring MVC suit le concept de modèle, de vue et de contrôleur.
Il s'agit d'une instance d'un contrôleur qui est partagée seule et qui permet également de gérer plusieurs requêtes qui s'exécutent dans des conteneurs d'inversion de contrôle tels que les intercepteurs et les contrôleurs. Le modèle Spring MVC permet de séparer les aspects de l'application qui incluent la logique d'entrée, de gestion et de présentation.
Q # 3) Quelles sont les fonctionnalités principales de Spring Framework?
Répondre:
Les principales fonctionnalités de Spring MVC sont:
- Il est capable de configurer efficacement le framework et les classes en tant que beans. Il divise également les rôles fonctionnels et les responsabilités séparément.
- Il permet la définition d'une méthode de contrôleur illimitée qui rend l'application hautement réglable et flexible.
- Il offre une bonne personnalisation pour le mappage de gestionnaire, la liaison, la résolution de vue et les validations.
- Il permet de transférer le modèle en utilisant une carte. Il fournit également des supports pour la vitesse, JSTL, JSP et l'utilisateur peut personnaliser la résolution des paramètres régionaux et du thème.
- Spring a sa propre bibliothèque de balises qui le rend plus flexible et prend en charge la liaison de données, les thèmes, les beans ayant un cycle de vie allant jusqu'à la requête HTTP.
Q # 4) Expliquez le concept du servlet Dispatcher.
Répondre: Dispatcher Servlet est le servlet central principal qui gère toutes les requêtes et réponses HTTP entrantes. Il est intégré à Spring IOC et permet ainsi d'utiliser toutes les fonctionnalités de Spring.
Une fois que le servlet du répartiteur reçoit une demande, il la transmet au mappage du gestionnaire pour obtenir un contrôleur approprié, et maintenant le contrôleur appellera la méthode de service correcte et la renverra à nouveau au servlet du répartiteur.
Là encore, le servlet envoie la demande au résolveur de vue pour obtenir la vue requise, puis il envoie la réponse au navigateur client.
Exemple de code pour montrer l'utilisation du servlet du répartiteur:
Software Testing Help Web Application SoftwareTestingHelp org.Springframework.web.servlet.DispatcherServlet 1 SoftwareTestingHelp /
Q # 5) Quelle est l'utilisation de ContextLoaderListner dans Spring MVC?
Répondre: Il est utilisé pour lire et analyser le fichier de configuration Spring et traiter le chargement des beans dans ce fichier de configuration.
Exemple de code:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/applicationContext.xml 1
Q # 6) Expliquez la classe de contrôleur avant de Spring MVC.
Répondre: Front Controller est responsable de traiter la totalité de la demande entrante d'une application. Dans Spring MVC, le servlet du répartiteur agit comme un contrôleur frontal et gère l'ensemble des demandes entrantes.
Q # 7) Expliquez la fonction de @Autowired Annotation.
Répondre: L'annotation @Autowired est responsable de l'injection d'un bean par son type avec les champs et les méthodes. En aidant ainsi le framework Spring à résoudre et à injecter des beans collaboratifs dans notre bean.
Exemple:
package com.SoftwareTestingHelp; import org.Springframework.beans.factory.annotation.Autowired; public class WordEditor { private SpellChecker sp; @Autowired public void setSp( SpellChecker sp ){ this.sp = sp; } public SpellChecker getSp( ) { return sp; } public void spellCheck() { sp.checkSpelling(); } }
Q # 8) Quelle est la fonction de l'annotation d'attribut de modèle?
Répondre: L'annotation @ModelAttribute joue un rôle essentiel dans le framework Spring MVC. Il est responsable du paramètre de méthode de liaison avec l'attribut de modèle respectif et l'affiche ensuite sur la page de présentation.
Cela dépend également de ce que le développeur utilise dans l'annotation d'attribut de modèle . S'il est utilisé au niveau de la méthode, cela indique que la méthode est chargée d'ajouter des attributs. Lorsqu'il est utilisé comme paramètre, il indique que la valeur du paramètre doit être extraite de la couche de modèle.
Q # 9) Expliquez le concept et la fonction de la variable de chemin.
Répondre: @PathVariable est une annotation qui est utilisée comme paramètre dans la méthode de gestionnaire pour extraire la valeur du modèle d'URI.
Exemple:
@RequestMapping('/Login/{Lid}') public String handleRequest(@PathVariable('Lid') String Login, Model map) { }
Q # 10) Quelle est la fonction de l'annotation @RequestBody?
Répondre: L'annotation @RequestBody est responsable de la liaison de la requête de corps HTTP à un objet de domaine. La requête HTTP entrante est automatiquement désérialisée vers l'objet Java par Spring à l'aide des convertisseurs de messages HTTP.
Q # 11) Quelle est la fonction de l'annotation @ResponseBody?
Répondre: Lorsque l'annotation @ResponseBody est utilisée dans le contrôleur MVC, cela indique que le développeur doit écrire un type de retour de méthode déclarée directement dans le corps de la réponse HTTP. Ici, l'appel du modèle n'est pas obligatoire et le nom de la vue n'est pas interprété par Spring.
Q # 12) Pourquoi avons-nous besoin d'un résolveur de vue dans Spring MVC et qu'est-ce qu'un résolveur de vue interne dans Spring?
Répondre: View Resolver est responsable du rendu des modèles dans le navigateur Web. Il ne nécessite aucune technologie d'affichage spécifique telle que JSP, XML et Velocity, etc.
«InternalResourceViewResolver» est le résolveur de vue interne dans Spring MVC.
Il existe des résolveurs de vue importants dans Spring MVC, comme indiqué ci-dessous:
AbstractCachingViewResolver, XmlViewResolver, ResourceBundleViewResolver, UrlBasedViewResolver, InternalResourceViewResolver, FreeMarkerViewResolver, ContentNegotifyingViewResolver etc.
Q # 13) Expliquez le principe de fonctionnement du framework Spring MVC.
Répondre:
Le diagramme ci-dessous vous aidera à comprendre le flux:
Comme nous le savons, il est basé sur le concept de modèle, de vue et de contrôleur. Dispatcher Servlet reçoit la requête HTTP en fonction du mappage de servlet effectué dans le fichier web.xml.
Une fois la demande reçue par le servlet Dispatcher, il envoie la même demande au mappage de gestionnaire pour obtenir la classe de contrôleur requise. Le mappage du gestionnaire est mentionné dans le fichier de configuration Spring.
Là encore, la demande est envoyée au contrôleur, et le contrôleur traite la demande et la méthode et renvoie l'objet de vue de modèle requis au servlet du répartiteur.
Maintenant, la requête est envoyée au résolveur de vue par un servlet pour obtenir la présentation de la page de vue.
Enfin, le servlet Dispatcher transmet le modèle à la page de présentation et le même est rendu à un navigateur client.
Q # 14) Quel est le but de l'utilisation de BindingResults?
Répondre: BindingResults est l'une des interfaces de Spring qui fait partie du package org. Cadre à ressort .validation et est utilisé pour représenter les résultats de liaison.
Il joue un rôle pratique dans la détection des erreurs des formulaires soumis. Il a un processus d'appel simple et facile. Le développeur doit garder à l'esprit de mettre le résultat de la liaison comme paramètre juste après la validation de l'objet.
Syntaxe:
@PostMapping('/client') public String submitpage(@Valid NewUserPage newUserPage, BindingResult result, Model model) { if (result.hasErrors()) { return 'uHome'; } model.addAttribute('message', 'Valid Page'); return 'uHome'; }
Ici, le framework Spring comprendra en lisant l'annotation @Valid et tentera de trouver son validateur.
Q # 15) Expliquez l'architecture modèle 1 et modèle 2 de Spring Framework.
Répondre: Ce sont les deux modèles de conception importants pour le développement d'applications Web.
Modèle 1:
Ici, la demande entrante est gérée par le servlet ou une JSP. La page servlet ou JSP est responsable du traitement, du traitement de la requête, du contrôle de la logique métier, de la validation des données et enfin de la génération de la réponse.
Il est simple et a une architecture facile et est surtout préféré par les petites industries pour développer des applications simples.
Modèle 2:
Il s'agit d'un modèle de conception important basé sur le concept Model View Controller. Il est capable de séparer la présentation et la section logique qui manipule le code.
Ce modèle est robuste, fiable et évite la duplicité. C'est bon pour créer des applications volumineuses et complexes.
Q # 16) Expliquez la fonction de l'intercepteur Spring MVC ainsi que son utilisation.
Répondre: Les intercepteurs jouent un rôle pratique dans Spring MVC. Ils sont utilisés pour intercepter la demande du client, traiter la demande à différents moments comme avant de traiter la demande, après le traitement de la demande et après l'achèvement de la partie présentation, c'est-à-dire afficher la page, etc.
Il est également utilisé à partir de préoccupations transversales et réduit la répétition du gestionnaire de code comme une modification des paramètres globaux dans le modèle plus tard, la journalisation, etc.
Q # 17) Est-il autorisé à utiliser plusieurs fichiers de configuration Spring dans Spring MVC?
Répondre: Oui, Spring permet d'avoir plusieurs fichiers de configuration dans une seule application.
Il existe principalement deux façons d'y parvenir et ces méthodes sont mentionnées ci-dessous:
(i) Le développeur doit déclarer tous les fichiers du fichier web.xml en utilisant le paramètre:
Spring org.Springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/Spring-dao-hibernate.xml, 1 Spring /
(ii) Le développeur peut importer des fichiers dans la configuration existante.
Q # 18) Expliquez les fonctions des annotations suivantes: @Component, @Controller, @Repository, @Service.
Répondre: Voici les annotations importantes de Spring MVC. Jetons un œil à eux.
@Composant: Cette annotation est responsable de la conversion d'une classe java en bean afin qu'elle puisse être reconnue par Spring et utilisée dans le contexte de l'application.
Syntaxe:
@Component public class StudentDAOImpl implements StudentDAO { ... }
@Dépôt: Cette annotation a la même utilité que celle de @Component, mais elle prend également en compte les exceptions non vérifiées qui peuvent être utilisées dans Spring.
@Un service: Cette annotation convertit également la classe java en bean, mais il est préférable d'utiliser l'annotation @service que @component car elle fournit de meilleures spécifications dans une application en temps réel.
@Manette: Si nous voulons créer une classe comme contrôleur, nous devons spécifier cette annotation.
Q # 19) Quel est le rôle du résolveur Multipart et quand est-il utilisé?
Répondre: Multipart Resolver est responsable du téléchargement du fichier dans une application Web. Deux implémentations pour cela sont commonsMultipartResolver et StandardServletMultipartResolver.
Q # 20) Comment Spring MVC fournit-il un support pour la validation?
Répondre: Spring fournit une prise en charge de la validation de deux manières, c'est-à-dire principalement en utilisant l'annotation JSR 303 et l'interface de validation.
Q # 21) Comment la localisation est-elle réalisée dans les applications Web Spring MVC?
Répondre: Spring MVC est configuré avec LocaleResolver pour prendre en charge à la fois l'internationalisation et la localisation. Pour rendre cela possible, certains beans doivent être enregistrés comme indiqué ci-dessous.
SessionLocaleResolver - Il faut l'aide des attributs déjà définis dans la session utilisateur pour résoudre les paramètres régionaux.
Syntaxe:
LocaleChangeInterceptor - Il est utile lorsqu'un paramètre est présent dans la requête entrante.
Syntaxe:
Q # 22) Expliquez le concept de contexte d'application racine dans Spring MVC ainsi que son processus de chargement.
Répondre: ContextLoaderListner est connu comme le contexte de l'application racine dans Spring MVC et est utilisé par l'application complète.
C'est un auditeur qui aide le Spring MVC à démarrer. Il est utilisé pour charger et créer l'applicationContext, pour éviter d'écrire du code explicite. Spring bean est défini dans le contexte d'application.
Généralement, dispatcherServlet est utilisé pour spécifier les servlets dans Spring MVC.
Q # 23) Quel est le rôle de web.xml dans Spring MVC et où se trouve-t-il?
Répondre: Dans web.xml, nous configurons le ContextLoaderListner. Lorsque nous déployons l'application, une instance est créée par le conteneur Servlet pour ContextLoaderListner, puis elle conduit au chargement du webApplicationContext.
Q # 24) Décrivez certains types de retour de la méthode du contrôleur.
Répondre: Certains des types de retour importants des méthodes de contrôleur incluent String, void, view, ModelAndView, Model, Map, HttpHeaders, etc.
Q # 25) Sur quelle base une vue est-elle choisie dans la phase de rendu?
Répondre: Le ViewResolver dans l'architecture MVC est responsable du choix de la vue requise.
Lorsque le contrôleur envoie la réponse au servlet du répartiteur, il envoie la demande au résolveur de vue pour obtenir la page de vue correcte qui peut être envoyée à un navigateur Web client pour présentation.
Q # 26) Quelle est la principale différence entre les annotations @Requestparam et @PathVariable?
Répondre: Ces annotations sont utilisées pour récupérer des informations et des données à partir d'une URL.
Mais la principale différence entre eux est que @Requestparam n'est utilisé que pour récupérer les paramètres de requête et @PathVariable est utilisé pour récupérer l'URL complète.
Q # 27) Expliquez le concept de programmation orientée aspect?
comment trouver la clé de sécurité réseau pour le point d'accès mobile
Répondre: AOP est une partie importante de Spring MVC Architecture. AOP est utilisé pour des préoccupations transversales et également pour les applications, la validation des données, la journalisation des modules, la gestion des transactions, l'authentification et les objets.
Il existe de nombreuses parties de la programmation orientée aspect. Ceux-ci sont mentionnés ci-dessous:
- Aspect: Aspect est responsable des préoccupations transversales telles que la gestion des transactions, etc.
- Conseils: Il s'agit essentiellement d'une action et d'une méthode qui sont exécutées et qui sont également utilisées pour un point de jointure spécifié.
- Pointcut: Il est responsable de l'exécution des conseils en termes d'expressions régulières.
- Point commun: C'est un point dans l'application pour des processus comme la gestion des exceptions, l'exécution de la méthode, le changement des valeurs de variable, etc.
- Arguments du conseil : Ces arguments sont utilisés pour passer des méthodes.
Conclusion
J'espère que vous auriez eu un aperçu complet de l'architecture Spring MVC à partir de cet article.
Ici, nous avons couvert le flux complet de bout en bout du flux Spring MVC, Pourquoi avons-nous besoin de Spring MVC? Quels sont les différents modules de l'architecture MVC? Caractéristiques de Spring MVC et du servlet du répartiteur, le concept du contrôleur frontal, les écouteurs et sa fonction, différents types d'annotations comme @Autowired, @Controller, @RequestBody, etc.
Nous en avons également appris davantage sur le concept View Resolver, le processus AOP et les différents types de contrôleur ainsi que ses utilisations. Localisation et intercepteurs, architecture différente du framework Spring et concept du résultat de liaison avec ses utilisations.
Nous avons appris ce qu'est un conteneur Spring et son utilisation dans Spring MVC? Utilisation des fichiers de configuration dans Spring MVC, responsabilités et importance des variables de chemin. etc Presque toutes les questions d'entretien Spring MVC importantes et les plus attendues sont expliquées dans cet article.
Cependant, il est toujours conseillé d'expliquer avec des exemples de code dans l'application en temps réel pour satisfaire les attentes de l'intervieweur. Tous les codes requis pour chaque concept sont couverts ici pour votre compréhension facile.
Nous vous souhaitons le meilleur!
lecture recommandée
- Questions et réponses d'entrevue
- 25 meilleures questions et réponses d'entrevue de test Agile
- 25+ questions et réponses d'entrevue ADO.NET les plus populaires
- Quelques questions et réponses difficiles sur les tests manuels
- Questions et réponses d'entrevue de test ETL
- Questions et réponses sur les tests de logiciels (partie 1)
- Plus de 40 questions et réponses sur les entretiens avec les analystes d'assurance qualité de test populaires (LISTE 2021)
- Top 25 des questions et réponses d'entrevue de test fonctionnel