Top 35 des questions et réponses des entretiens de printemps : Guide ultime 2022

Publié: 2021-01-08

Vous avez une prochaine interview liée à Spring Framework? Peut-être avez-vous atterri sur cette page parce que vous recherchez les principales questions d'entretien de Spring Framework . Dans notre blog, nous discuterons des questions et réponses des entretiens de printemps les plus posées.

Si vous passez par là, il y a de fortes chances que vous obteniez des performances incroyables lors de votre entretien. Avant de commencer, laissez-nous vous donner un aperçu de la demande globale de Spring Framework sur le marché actuel.

Lire : La demande des développeurs full stack en Inde

Spring rend le langage de programmation Java plus rapide, plus simple et plus sûr pour tous. Son objectif principal est la vitesse, mais il est simple et productif. Pour cette raison, il est devenu l'un des frameworks Java les plus populaires au monde. Les bibliothèques sont flexibles et fiables. Il est utilisé dans de nombreux endroits comme les achats en ligne, les voitures connectées et des technologies plus innovantes.

Il se vante également de ses contributions à de grands géants comme Amazon, Google et Alibaba. De plus, la communauté Spring est énorme. Elle comprend toutes les tranches d'âge et est très diversifiée. Vous trouverez d'excellentes ressources et une assistance en ligne pour passer au niveau supérieur, ce qui facilitera votre voyage.

Si vous êtes un programmeur Java, Spring Framework est crucial pour vous. De nombreuses entreprises exigent que le programmeur comprenne Spring Framework ou au moins connaisse certains de ses modules.

Voici quelques questions et réponses d'entrevue de printemps que vous pouvez vous attendre à ce que votre intervieweur pose.

Table des matières

Questions et réponses de l'entrevue de printemps 2020

Q.1 Quelles sont les différentes versions que vous pouvez trouver de Spring Framework et quelles sont leurs principales fonctionnalités ?

Les trois versions sont Spring 2.5, Spring 3.0 et Spring 4.0.

Spring 2.5 a été la première version à prendre en charge les annotations. Il a été publié en 2007. Spring 3.0 utilisait des mises à niveau dans Java5 et offrait en outre une aide à JEE6. Il a été publié deux ans plus tard en 2009. Spring 4.0 était la principale variante à offrir une prise en charge complète de Java 8. Il a été publié en 2013.

Q.2 Décrire ou définir Spring Framework

Il s'agit d'une plate-forme Java open source. Il est utilisé comme une option pour les technologies Java d'entreprise lourde. Pour le dire simplement, il simplifie le développement Java car il est léger. Les développeurs peuvent développer des applications à l'aide de Spring Framework et les déployer même sur des ordinateurs dont la mémoire et les ressources du processeur sont limitées. De plus, il prend en charge divers autres frameworks, y compris, mais sans s'y limiter, Tapestry, JSF, EJB, Hibernate, Struts, etc.

Lire : Idées et sujets de projet Full Stack

Q.3 Quels sont les avantages du Spring Framework ?

  • Spring Framework est une source ouverte et n'a aucun verrouillage de fournisseur.
  • Vous ne pouvez utiliser que ce dont vous avez vraiment besoin en raison de l'architecture en couches qu'il utilise.
  • Spring Framework utilise des POJO, ce qui facilite grandement les tests d'applications.
  • Vous pouvez l'utiliser avec tous les autres frameworks de Java avec Spring Frameworks. Il n'impose aucune restriction ou limitation.
  • Spring Framework est un framework modulaire. C'est très souple.

Q.4 Quelles sont les différentes fonctionnalités de Spring Framework ?

  • Léger : Spring Framework est léger quand on parle de sa transparence et de sa taille.
  • Inversion de contrôle : C'est le principe selon lequel le flux de contrôle d'un programme est inversé. Ici, les sources externes telles que les services, le framework et d'autres composants contrôlent le flux d'un programme au lieu du programmeur.
  • Programmation orientée aspect : la programmation orientée aspect dans Spring prend en charge le développement de liaisons en séparant les services système de la logique métier de l'application.
  • Conteneur : Le conteneur est au cœur du Spring Framework C'est le conteneur qui crée les objets, les lie, les configure, et est en charge de leur cycle de vie complet, qui va de la création jusqu'à la fin.
  • MVC Framework : le framework d'application Web MVC de Spring Framework est facile à utiliser et configurable. Vous pouvez utiliser d'autres frameworks au lieu de choisir Spring MVC Framework.
  • Gestion des transactions : Spring Framework utilise une couche d'abstraction générique pour la gestion des transactions. Vous pouvez utiliser la prise en charge des transactions de Spring dans des environnements sans conteneur.
  • Gestion des exceptions JDBC : vous n'avez pas besoin de gérer explicitement les exceptions liées à la base de données. Spring JDBC Framework le gère à l'aide de la gestion des exceptions JDBC.

Lire : Questions d'entretien pour les développeurs Full Stack

Q.5 Combien de modules pouvez-vous trouver dans Spring Framework ? Nomme les.

Vous pouvez trouver vingt modules classés en Core Container, Web, Data Access/Integration, AOP (Aspect Oriented Programming), Instrumentation et Test.

Spring Core Container : Comme son nom l'indique, il s'agit du conteneur principal de Spring Framework. Il comprend de

  • Noyau de ressort
  • Haricot de printemps
  • Langage d'expression de printemps
  • Contexte printanier

Web : cette couche permet de créer une application Web. Il comprend les modules suivants :

  • la toile
  • Web – MVC
  • Web – Prise
  • Web – Portlet

Accès aux données/intégration : cette couche permet de communiquer avec la base de données. Il comprend les modules suivants :

  • Connectivité de la base de données Java - JDBC
  • Cartographie relationnelle d'objet - ORM
  • Mappeurs XML d'objets - OXM
  • Service de messagerie Java - JMS
  • Transaction

Programmation orientée aspect : dans cette couche, les développeurs peuvent utiliser des pointcuts, des conseils, etc. pour découpler le code.

Instrumentation : cette couche prend en charge les implémentations de chargeur de classe et l'instrumentation de classe.

Test : cette couche prend en charge les tests avec TestNG et Junit.

Vous pouvez également trouver d'autres nœuds divers comme :

Messagerie : Ce module offre une assistance pour STOMP. Il sert également de modèle de programmation d'annotations nécessaire au routage et au traitement des messages STOMP des clients WebSocket.

Aspects : ce module offre un support pour l'intégration avec AspectJ.

Q.6 Qu'est-ce qu'un fichier de configuration Spring ?

Il s'agit essentiellement d'un fichier XML. Vous trouverez toutes les informations sur les classes dans ce dossier. Il décrit en outre comment ces classes sont configurées et connues les unes des autres. Les fichiers de configuration XML sont détaillés, il est donc nécessaire de les garder propres. Sinon, les gérer devient difficile si votre projet est important.

Q.7 Décrivez les différents composants d'une application Spring.

En règle générale, une application Spring comprend les composants suivants :

  • Interface : Toutes les fonctions sont définies dans l'interface.
  • Classe Bean : Vous pouvez trouver ici des propriétés avec les fonctions set et get.
  • Spring Aspect-Oriented Programming (AOP): Il donne la fonctionnalité des préoccupations transversales.
  • Fichier de configuration du bean : ce fichier contient les détails des classes et comment on peut les configurer.
  • Programme utilisateur : Un programme utilisateur utilise la fonction.

Q.8 Expliquer les différentes manières d'utiliser Spring Framework

Spring Framework peut être utilisé de plusieurs manières comme :

  • Spring Framework peut être utilisé comme une application Web Spring complète.
  • Spring Framework peut être utilisé comme framework Web tiers, en utilisant le niveau intermédiaire de Spring Frameworks.
  • Spring Framework peut être utilisé pour une utilisation à distance.
  • Spring Framework peut être utilisé comme Enterprise Java Bean, qui peut encapsuler des POJO existants.

Q.9 Qu'est-ce que le conteneur Spring IOC ?

Le conteneur est au cœur du Spring Framework. C'est le conteneur qui crée les objets, les lie, les configure, et est en charge de leur cycle de vie complet, c'est-à-dire de la création jusqu'à la fin.

Le conteneur Spring utilise l'injection de dépendance pour gérer les composants qui créent une application. Le conteneur obtient des instructions sur les objets à créer, définir et appeler en lisant les métadonnées de configuration fournies par des annotations Java, du code Java ou par un XML.

Q.10 Qu'est-ce qu'une injection de dépendance ?

Dans Dependency Injection, au lieu de créer des objets, vous les décrivez simplement sur la façon de les créer. Les développeurs doivent décrire les services requis par un composant particulier dans le fichier de configuration. Il n'est pas nécessaire de connecter directement les services aux composants dans le code. Ils sont câblés ensemble par le conteneur Spring IoC.

Q.11 Dans combien de méthodes peut-on faire de l'injection de dépendance ?

Il existe trois façons d'effectuer l'injection de dépendance :

  • Injection de constructeur
  • Injection de poseur
  • Injection d'interface

Cependant, dans Spring Framework, seules les injections de constructeur et les injections de setter sont utilisées.

Q.12 Qu'est-ce qui différencie l'injection constructeur de l'injection setter.

Injection de constructeur Injection de poseur
Il n'y a pas d'injection incomplète ou limitée. Il peut y avoir une injection incomplète ou limitée.
Il ne remplace pas la propriété setter. Il remplace la propriété du constructeur.
Il crée une nouvelle instance si une modification est effectuée. Il ne crée aucune nouvelle instance si une modification est apportée.
Cela fonctionne mieux pour beaucoup de propriétés. Cela fonctionne mieux pour moins de propriétés.

Q.13 Combien de types de conteneurs IOC sont disponibles au printemps ?

Vous pouvez généralement trouver deux conteneurs IOC, à savoir :

  1. BeanFactory : BeanFactory est une sorte de classe d'usine qui comprend un groupe de beans. Il instancie le bean chaque fois que les clients le demandent.
  2. ApplicationContext : l'interface ApplicationContext est créée au-dessus de l'interface BeanFactory. Il offre quelques fonctionnalités supplémentaires, en plus de celle fournie par la BeanFactory.

Q.14 Parlez-nous de quelques différences entre BeanFactory et ApplicationContext.

Fabrique de haricots ApplicationContextApplicationContext
C'est une interface expliquée dans org.springframework.beans.factory.BeanFactory C'est une interface expliquée dans org.springframework.context.ApplicationContext
Il utilise l'initialisation paresseuse Il utilise une initialisation agressive
Il donne explicitement un objet ressource en utilisant la syntaxe Il construit et gère lui-même les objets ressources
Cela n'aide pas l'internationalisation Il facilite l'internationalisation
Cela n'aide pas la dépendance basée sur les annotations Il facilite la dépendance basée sur les annotations

Q.15 Quels sont quelques avantages de l'IoC ?

Certains des avantages de l'IoC sont :

  • Cela réduira la quantité de code nécessaire dans votre application.
  • Votre application est beaucoup plus facile à tester car elle n'a pas besoin de singletons ou de mécanismes de recherche JNDI dans vos cas de test unitaire.
  • Il encourage un couplage lâche avec un minimum d'effort et le mécanisme le moins intrusif.
  • Il facilite l'instanciation rapide et le chargement paresseux des services.

Q.16 Que sont les haricots de printemps ?

Les Spring Beans sont les objets qui servent de colonne vertébrale à l'application de l'utilisateur. Les haricots sont contrôlés par le conteneur Spring IoC. En les contrôlant, ils sont instanciés, configurés, câblés et gérés par un conteneur Spring IoC. Les beans sont créés à l'aide des métadonnées de configuration que les utilisateurs fournissent au conteneur.

Q.17 Comment les métadonnées de configuration sont-elles fournies au conteneur Spring ?

Les métadonnées de configuration peuvent être transmises au conteneur Spring de l'une des manières suivantes :

  • Configuration basée sur les annotations : on peut utiliser des annotations sur la classe appropriée pour décrire le câblage du bean dans la classe de composants elle-même. Ce n'est pas le réglage par défaut. Donc, si vous souhaitez l'utiliser, vous devrez l'activer dans le fichier de configuration Spring avant de pouvoir l'utiliser.
  • Configuration basée sur XML : les dépendances et les services requis par les beans sont mentionnés dans les fichiers de configuration. Ceux-ci sont au format XML. Ils comprennent de nombreuses définitions de bean et des options de configuration spécifiques à l'application. Ils commencent généralement par une étiquette de haricot.
  • Configuration basée sur Java : les principales fonctionnalités de la nouvelle prise en charge de la configuration Java de Spring Framework sont les méthodes annotées @Bean et les classes annotées @Configuration.

Q.18 Combien de portées de bean Spring prend-il en charge ?

Il prend en charge cinq portées qui sont :

  • Singleton : Cela donne la portée de la définition du bean à une seule instance par conteneur Spring IoC.
  • Prototype : cela permet à une seule définition de bean d'avoir un nombre quelconque d'instances d'objet.

Les étendues ci-dessous ne sont disponibles que si les utilisateurs utilisent un ApplicationContext compatible Web.

  • Requête : cela donne la possibilité d'une définition de bean à une requête HTTP.
  • Session : Cela donne de la place pour une définition de bean à une session HTTP.
  • Global-session : cela donne la possibilité d'une définition de bean à une session HTTP globale.

Q.19 Expliquer le cycle de vie du haricot dans le conteneur Spring Bean Factory

  1. Le conteneur Spring instancie d'abord le bean à partir de la définition du bean dans le fichier XML.
  2. Spring utilisant l'injection de dépendance remplit toutes les propriétés.
  3. La fabrique appelle setBeanName() en donnant l'ID du bean si le bean exécute l'interface BeanNameAware.
  4. La fabrique appelle setBeanFactory() en créant une instance d'elle-même si le bean exécute l'interface BeanFactoryAware.
  5. S'il existe des BeanPostProcessors liés au bean, les méthodes preProcessBeforeInitialization() sont appelées.
  6. Si le bean spécifie la méthode init, il est alors appelé.
  7. S'il existe des BeanPostProcessors liés au bean, les méthodes preProcessAfterInitialization() sont appelées.

Q.20 Expliquer le câblage du bean

Le câblage des haricots se produit lorsque tous les haricots sont combinés à l'intérieur du conteneur Spring. Le conteneur Spring doit comprendre quels beans sont nécessaires et comment il doit utiliser l'injection de dépendance pour lier les beans entre eux.

Q.21 Qu'est-ce que le câblage automatique et nommez les différents modes de câblage automatique ?

Le conteneur Spring a la capacité de relier automatiquement les relations entre les beans de connexion. Le Spring peut résoudre automatiquement les collaborateurs pour votre bean en voyant le contenu de la BeanFactory.

Les différents modes de câblage automatique du bean sont :

  1. non : il s'agit de l'option présélectionnée, ce qui signifie qu'il n'y a pas de câblage automatique. Vous devez utiliser une référence de bean explicite pour le câblage.
  2. byName : il injecte la dépendance de l'objet en fonction du nom du bean. Il associe et connecte ses propriétés avec les beans expliqués par les noms exacts dans le fichier XML.
  3. byType : comme son nom l'indique, il injecte la dépendance de l'objet en fonction du type. Il correspond et câble une propriété si le type correspond à l'un des noms des beans dans un fichier XML.
  4. Constructeur : un constructeur injecte la dépendance en appelant le constructeur de la classe. Il a de nombreux paramètres.
  5. Détection automatique : par défaut, le conteneur se connecte automatiquement à l'aide d'un constructeur. S'il échoue, il essaie alors de se connecter automatiquement par byType.

Q.22 Quelles sont les restrictions ou limitations du câblage automatique ?

Il y a quelques limitations/restrictions auxquelles on est confronté en utilisant le câblage automatique comme :

  • Possibilité de remplacement : en utilisant les paramètres <constructor-arg> et <property>, vous pouvez spécifier des dépendances. Il remplacera le câblage automatique.
  • Type de données primitif : le type de données primitif, les classes et les chaînes ne peuvent pas être câblés automatiquement.
  • Nature compliquée : le câblage explicite est préféré au câblage automatique car ce dernier est de nature déroutante.

Q.23 Qu'est-ce que la configuration de conteneur basée sur les annotations ?

Une alternative aux configurations XML, la configuration de conteneur basée sur des annotations, est utilisée pour décrire le câblage d'un bean. Le développeur transfère la configuration dans la classe du composant en utilisant des annotations sur la méthode, la classe ou la déclaration de champ.

Q.24 Comment activer le câblage des annotations dans Spring ?

Le câblage des annotations est désactivé par défaut dans le conteneur Spring. Ainsi, pour utiliser le câblage basé sur les annotations, vous devez l'activer dans le fichier de configuration Spring en définissant l'élément <context:annotation-config/> .

Q.25 Expliquez la différence entre diverses annotations telles que @Controller, @Component, @Repository & @Service au printemps ?

@Controller : Ceci indique une classe en tant que contrôleur Spring Web MVC. Il importe automatiquement les beans marqués avec lui dans le conteneur d'injection de dépendance.

@Component : Ceci indique une classe Java en tant que bean. C'est un stéréotype général pour tout composant géré par Spring. Le processus d'analyse des composants de Spring peut le récupérer et l'extraire dans le contexte de l'application.

@Service : cette annotation est une zone d'annotation de composant. Il n'y a pas de nouveau comportement sur l'annotation @Component. On peut utiliser @Service au lieu de @Component dans les classes de couche de service car il spécifie l'intention de manière appropriée.

@Repository : cette annotation est une zone de l'annotation @Component. Il est livré avec les mêmes fonctions et utilisations. Cependant, il offre des avantages supplémentaires, précisément pour les DAO. Il obtient les DAO dans le conteneur DI et qualifie les exceptions non contrôlées pour la traduction en Spring DataAccessException.

Q.26 Décrire la prise en charge de Spring DAO

La prise en charge de l'objet d'accès aux données dans Spring facilite l'accès à des technologies telles que Hibernate, JDBC ou JDO de manière appropriée et stable. Il permet de sélectionner l'une des technologies sans aucun tracas. Cela permet également de coder sans se soucier de la capture des exceptions liées à chacune de ces technologies.

Q.27 Quelles classes sont disponibles dans l'API Spring JDBC ?

Les classes présentes dans l'API JDBC sont :

  1. JdbcTemplate
  2. SimpleJdbcTemplate
  3. NamedParameterJdbcTemplateNamedParameterJdbcTemplate
  4. SimpleJdbcInsert
  5. SimpleJdbcCall

Q.28 Quelles sont les méthodes par lesquelles on peut accéder à Hibernate en utilisant Spring ?

Il existe deux méthodes par lesquelles on peut accéder à Hibernate en utilisant Spring :

  1. La méthode d'inversion de contrôle avec un modèle de rappel et d'hibernation.
  2. Application d'un nœud AOP Interceptor et extension de HibernateDAOSupport.

Q.29 Nommez les types de gestion des transactions pris en charge par Spring

Spring prend en charge deux types de gestion des transactions. Elles sont:

  1. Gestion programmatique des transactions : Ici, la transaction est contrôlée à l'aide de la programmation. Il offre une grande flexibilité. Cependant, il est difficile à entretenir.
  2. Gestion déclarative des transactions : Ici, la gestion des transactions est séparée du code métier. On ne peut utiliser que des annotations ou des configurations basées sur XML pour contrôler les transactions.

Q.30 Décrire l'AOP

AOP est connu sous le nom de programmation arrangée en aspect. Il s'agit d'un système de programmation qui permet aux ingénieurs logiciels de modulariser les préoccupations ou les comportements transversaux qui dépassent les divisions d'obligation standard. Des exemples de préoccupations transversales sont la journalisation et la gestion des transactions. Le cœur de l'AOP est un aspect . Il illustre les pratiques qui peuvent influencer diverses classes en modules réutilisables.

Q.31 Qu'entendez-vous par Aspect ?

L'aspect est la modularisation de la préoccupation, qui traverse plusieurs objets. Un bon exemple de préoccupations transversales dans J2EE serait les applications de gestion des transactions. Les aspects sont exécutés à l'aide de classes régulières ou de classes régulières expliquées avec l'annotation @Aspect dans Spring Framework.

Q.32 Qu'est-ce qu'un JoinPoint

Point auquel l'exécution d'un programme est appelée JoinPoint, par exemple, la gestion d'une exception ou l'exécution d'une méthode. Dans Spring AOP, un JoinPoint représente systématiquement l'exécution d'une méthode.

Q.33 Que voulez-vous dire par le framework Spring MVC ?

Le framework Web Spring MVC offre une architecture modèle-vue-contrôleur et des composants prêts à l'emploi. Vous pouvez utiliser ces composants pour créer des applications Web flexibles et faiblement couplées. Le modèle MVC permet d'isoler les différents aspects de l'application tels que la logique métier, la logique d'entrée et la logique de l'interface utilisateur tout en offrant un couplage lâche entre chacun de ces composants.

Q.34 Décrire DispatcherServlet

C'est le cœur du framework Spring Web MVC. Il gère toutes les requêtes et réponses HTTP. Le DispatcherServlet obtient du fichier de configuration l'entrée du mappage du gestionnaire et transmet la demande au contrôleur. Le contrôleur donne alors un objet de modèle et de vue. Le DispatcherServlet marque l'entrée du résolveur de vue dans le fichier de configuration et appelle le composant de vue défini.

Q.35 Expliquer WebApplicationContext

Le WebApplicationContext est une augmentation du ApplicationContext ordinaire. Il a quelques fonctionnalités supplémentaires qui sont nécessaires pour les applications Web. Il est différent d'un ApplicationContext normal car il a la capacité de résoudre des thèmes et de décider à quel servlet il est lié.

Apprenez des cours de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

Nous avons couvert la plupart des principales questions d'entretien de printemps posées par l'intervieweur. Si vous souhaitez en savoir plus et avez besoin du mentorat d'experts de l'industrie, consultez le programme Executive PG Program Full-Stack Software Development de upGrad & IIIT Banglore.

Qu'est-ce que Java Spring ?

Java Spring, développé par Sun Microsystems, est une plate-forme qui prend en charge le développement d'applications. Spring est une collection de services et d'API basés sur Java qui aide à écrire des applications évolutives. Spring est un framework de développement d'applications open source. Il peut être utilisé avec n'importe quelle application basée sur Java, ce qui le rend open source. Spring fournit des classes utilitaires, la gestion des exceptions, AOP et des interfaces pour prendre en charge les applications d'entreprise. Java Spring est une plate-forme qui prend en charge les applications côté serveur basées sur Java et simplifie le processus de développement global. Il s'agit d'une plate-forme très flexible qui peut être utilisée avec n'importe quel serveur basé sur Java. Il fournit des classes utilitaires et des services de gestion des exceptions. Il dispose d'un système de support transactionnel et fournit une liaison facile avec les bases de données.

Qu'est-ce que Spring MVC ?

Spring MVC (Model View Controller) est un framework d'application Web open source écrit en Java et développé au cours des quatre dernières années par une équipe de SpringSource. Il est développé au-dessus de l'API Servlet et est disponible pour les applications Web Java EE 5 et pour les applications Google Web Toolkit. Il s'intègre également à Spring Data et Spring AOP, vous pouvez donc l'utiliser avec Hibernate, JPA et la programmation orientée aspect, entre autres frameworks. Spring MVC est hautement configurable et prend en charge les principes d'inversion de contrôle (IoC) de Spring. Il prend en charge la création d'applications Web avec état, afin que vous puissiez conserver les informations sur l'état de l'application entre les demandes.

Qu'est-ce que Spring Hibernate?

Hibernate est une bibliothèque de mappage objet-relationnel (ORM) pour Java. Hibernate est conçu pour gérer la persistance des objets de classe Java. C'est un cadre ORM puissant, léger et extrêmement portable. Hibernate est disponible sous la licence publique générale limitée GNU (LGPL). Spring Data est un projet au sein de Spring Framework fournissant un ensemble de composants pour accéder et gérer les données d'une manière plus orientée objet en utilisant le paradigme familier Spring Inversion of Control (IoC). Hibernate n'est qu'un framework ORM. Spring Data, d'autre part, est un effort pour créer une couche d'abstraction sur divers mécanismes de stockage tels que la base de données relationnelle, NoSQL, les fichiers plats, etc.