Vous êtes développeur Java Spring Boot et vous avez hâte de passer un entretien, mais vous ne savez pas à quelles questions vous attendre ? Nous sommes là pour vous aider !
Cet article vous aidera à vous préparer de manière adéquate en décrivant plusieurs questions d’entretien Spring Boot fréquemment posées et les réponses que les intervieweurs peuvent utiliser pour vous tester.
Les intervieweurs utilisent des questions stratégiques sur Java Spring Boot pour tester les niveaux de compétences des personnes interrogées en fonction de leur rôle. Vous devez donc vous préparer avec des questions pertinentes et savoir comment y répondre.
Avant de passer directement aux questions d’entretien et aux réponses correspondantes, nous allons vous donner un aperçu de ce qu’est Spring Boot et de son utilité pour les développeurs Java.
Qu’est-ce que Java Spring Boot ?
Ce framework Java a été créé par l’équipe pivot en 2014. Spring Boot, qui est un framework open-source, développe efficacement des applications qui sont indépendantes, de qualité production et qui peuvent également fonctionner sur une machine virtuelle Java (JVM).
Les développeurs Java le préfèrent pour les applications web et le développement de microservices en raison de son processus d’installation rapide et facile et de sa durée de configuration sûre.
L’installation et la configuration faciles des applications basées sur Spring Boot sont possibles grâce à ses trois capacités principales, à savoir
- Autoconfiguration – il s’agit d’une configuration automatique de l’application Spring.
- Spring Boot fournit une approche fondée sur l’opinion quant aux valeurs par défaut de la configuration à utiliser et aux paquets à installer pour les dépendances requises. Cette approche permet d’accélérer la mise en place des projets.
- Sprsetupoot vous permet d’exécuter votre application de manière indépendante sans avoir besoin d’un serveur web.
En quoi Spring Boot est-il utile aux développeurs Java ?
Tout d’abord, les développeurs Java qui utilisent Spring Boot ont la tâche plus facile grâce à l’auto-configuration de tous les composants nécessaires au développement d’une application Spring de niveau production. À long terme, cela réduit le temps de développement et augmente leur efficacité.
Spring Boot s’intègre également facilement à l’écosystème Spring, qui comprend Spring JDBC, Spring Data, Spring Security et Spring ORM.
Les développeurs Java peuvent également connecter Spring Boot à différentes bases de données comme Oracle, MySQL, PostgreSQL et MongoDB, entre autres.
Bien sûr, les configurations flexibles avec les configurations XML, les Java Beans et les transactions de base de données sont parmi d’autres caractéristiques utiles.
Maintenant que vous avez une vue d’ensemble de Spring Boot, examinons quelques-unes des questions et réponses les plus fréquemment posées lors des entretiens avec Spring Boot, qui vous aideront à préparer votre entretien.
Questions et réponses pour l’entretien Spring Boot
Quelles sont les fonctionnalités de Spring Boot ?
Voici quelques-unes de ces fonctionnalités populaires :
- Le CLI Spring Boot fournit Groovy pour l’écriture de l’application Spring Boot ; à long terme, le code standard est évité.
- Spring Boot fournit une fonction de journalisation et de sécurité qui sécurise facilement votre application contre les menaces de sécurité potentielles.
- Il fournit une auto-configuration des composants pertinents pour votre projet, évitant ainsi le risque de fichiers WAR inutiles.
- L’initialisateur de démarrage établit pour vous une structure de projet interne par défaut. Ainsi, vous n’avez pas besoin de configurer manuellement la structure du projet.
- La fonction Spring Boot actuator vous permet d’accéder à des informations et à des mesures au fur et à mesure que l’application s’exécute.
- Bien entendu, l’une des fonctionnalités clés de Spring Boot, Starter Dependency, permet d’agréger les dépendances les plus couramment utilisées d’une fonctionnalité particulière.
Que sont les Starters de Spring Boot ?
Les starters Spring Boot sont des descripteurs de dépendances qui incluent un ensemble de fournisseurs de gestion de dépendances qui activent les dépendances de l’application. Ils fournissent au cadre la résolution automatique des dépendances. Les starters facilitent et accélèrent le développement.
Qu’est-ce qu’un Actuator dans Spring Boot et quels sont ses avantages ?
L’actuateur est l’une des fonctionnalités de Spring Boot qui vous permet de surveiller ce qui se passe à l’intérieur d’une application pendant qu’elle s’exécute.
Pendant le débogage, par exemple, vous pouvez utiliser l’actionneur pour analyser les journaux en accédant à des caractéristiques telles que l’utilisation du processeur et l’identification des haricots.
En outre, l’actionneur permet non seulement d’accéder facilement aux points d’extrémité REST prêts pour la production, qui contrôlent et gèrent les informations, mais aussi de récupérer des données sur le web.
Qu’est-ce que thymeleaf et comment l’utiliser ?
Thymeleaf est le modèle côté serveur de Java qui crée un modèle de présentation naturel pour les applications web Java Spring et HTML5.
Spring Boot effectuera une configuration automatique de thymeleaf en utilisant la dépendance spring-boot-starter-thymeleaf dans le fichier pom.xml pour servir le contenu web dynamique.
Pour permettre à Spring Boot de lire et de rendre les modèles thymeleaf ou les fichiers HTML, placez les modèles dans src/main/resources/templates.
Thymeleaf analyse ensuite le fichier index.html et utilise les valeurs réelles que vous transmettez à partir de la classe de contrôleur à la place des valeurs dynamiques disponibles dans le fichier index.
Ensuite, le message s’affiche dans le navigateur web dès que l’application Spring Boot s’exécute.
org.springframework.boot spring-boot-starter-thymeleaf
Décrivez le processus de création d’un projet Spring Boot à l’aide de Spring Initializer.
Spring Initializr, qui est un outil web de Spring, vous permet de créer un projet Spring Boot en quelques étapes en fournissant les détails du projet.
- Rendez-vous sur Spring intializr et remplissez les champs de saisie.
- Cliquez sur le bouton Generate pour lancer le téléchargement du projet.
- Extraire le projet téléchargé du fichier zip et l’ouvrir à partir de votre IDE. Depuis l’IDE, naviguez vers File->New->Project from existing sources->Spring-boot-app, puis sélectionnez le fichier pom.xml. Cliquez sur l’invite d’importation des changements pour que le projet se synchronise. Après cela, n’oubliez pas d’aller dans le fichier application.properties et de modifier le numéro server.port en
server.port=7000
. - Maintenant, exécutez l’application depuis src->main->java->com.gfg.Spring.boot.app
Qu’est-ce que JPA dans Spring Boot ?
Il s’agit d’une spécification de Java qui utilise le mappage objet-relation (ORM) pour gérer les données relationnelles et permettre l’accès aux données entre l’objet Java ou la classe Java et la base de données relationnelle de l’application.
JPA utilise le Java Persistent Query Language (JPQL), un langage de requête orienté objet qui est également indépendant de la plate-forme.
JPA permet le traitement des requêtes et les transactions d’objets contre la base de données à l’aide de l’API Entity Manager qu’il fournit.
Qu’est-ce que l’auto-configuration dans Spring Boot ?
L’auto-configuration cherche à automatiser la configuration de l’application Spring Boot en utilisant les dépendances jar que vous ajoutez aux applications.
En fonction des dépendances disponibles dans le Classpath de l’application, l’auto-configuration déclarera les objets intégrés du module spécifique à Spring, y compris JPA et spring security, entre autres.
Que sont les annotations Spring ?
Les annotations Spring font référence à des métadonnées offrant des informations sur un extrait de programme, et elles ajoutent des données supplémentaires à ce programme. Les composants du code, y compris les classes et les méthodes, sont souvent associés à des annotations.
Les annotations n’affectent pas directement le fonctionnement du programme ou l’action ultérieure du code compilé.
Leur syntaxe commence par le symbole‘@‘.
Spring Boot propose six principaux types d’annotations, à savoir
- Annotations Spring Core
- Annotations Spring Data
- Annotations Spring Bean
- Annotations Spring Web
- Annotations Spring Scheduling
- Annotations Spring Boot
Que signifie Spring Data REST ?
Spring Data REST expose les ressources en RESTful qui sont autour des ressources Spring Data en utilisant un code minimal.
L’exemple suivant utilise la méthode POST pour demander du contenu en utilisant http://localhost/example comme URL et Content-Type : application/json comme Header.
Demandez le contenu :
{
"name" : "Jimmy",
"Gender" : "Male",
"Age" : 23
}
Contenu de la réponse :
{
"name" : "Jimmy",
"Gender" : "Male",
"Age" : 23
"_links" : {
"self" : {
"href" : "http://localhost:8080/example/1"
},
"personne" : {
"href" : "http://localhost:8080/example/1"
}
}
}
Pourquoi les DevTools de Spring Boot sont-ils nécessaires ?
Il s’agit d’un ensemble complet d’outils prédéfinis dont les propriétés sont appliquées aux environnements de développement respectifs afin de faciliter le développement et de gagner du temps.
Chaque fois que vous modifiez du code dans l’application Spring Boot, la fonction DevTools de Spring Boot redémarre automatiquement. Cela vous évite donc de redémarrer manuellement votre application à chaque fois que vous modifiez votre code.
Qu’est-ce que Spring Data ?
Spring Data cherche à donner aux développeurs un accès facile aux technologies d’accès aux données telles que les données relationnelles et non relationnelles et les services de données basés sur le cloud, tout en continuant à conserver les caractéristiques particulières du magasin de données sous-jacent.
Comment dire à une auto-configuration de faire marche arrière lorsqu’un bean existe ?
Ici, vous utiliserez l’annotation @ConditionalOnMissingBean, qui inclut les attributs name et value comme suit.
- l’attribut value stocke le type de bean à vérifier
- l’attribut name qui nomme le bean à vérifier
Comment récupérer des données de la base de données dans Spring Boot ?
Nous pouvons accéder aux données d’une base de données MySQL dans notre application Spring Boot en suivant les étapes suivantes.
Étape 1 : Utilisez la commande create DATABASE person
pour créer la base de données dans MySQL.
Étape 2 : Dans la base de données, créez une table :
CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255)) ;
Étape 3 : Créez maintenant une application Spring Boot, puis ajoutez-y les dépendances JDBC, MySQL et les dépendances web requises.
Étape 4 : Configurez la base de données dans le fichier application.properties comme ci-dessous.
spring.datasource.url=jdbc:mysql://localhost:3306/personDetails
spring.datasource.username=example123
spring.datasource.password=exemple123
spring.jpa.hibernate.ddl-auto=create-drop
Étape 5 : Ensuite, gérons les requêtes dans la classe du contrôleur :
package com.person ;
import org.springframework.web.bind.annotation.RequestMapping ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.jdbc.core.JdbcTemplate ;
import org.springframework.web.bind.annotation.RestController ;
@RestController
public class JdbcController {
@Autowired
JdbcTemplate jdbc ;
@RequestMapping("/save")
public String index(){
jdbc.execute("insert into person (name)values(Trial)") ;
return "Nom entré avec succès" ;
}
}
Enfin, exécutez votre application lorsque vous vérifiez l’entrée dans la base de données pour voir les données consultées.
Pourquoi avons-nous besoin des Spring Profiles ?
Les Spring Profiles permettent de séparer la configuration d’une application en différentes parties et de les utiliser pour des développements spécifiques.
Les Spring Profiles évitent également au développeur d’avoir à gérer des configurations externes spécifiques à l’environnement si les Spring Profiles n’étaient pas disponibles.
En outre, il serait difficile de rester synchronisé et il serait nécessaire d’écrire plusieurs composants de type usine qui fourniraient certaines choses requises en fonction de paramètres spécifiques à l’environnement.
Peut-on changer le port du serveur Tomcat intégré dans Spring boot ?
Oui, c’est possible.
Il suffit de manipuler le fichier application.properties pour y inclure la propriété server.port
et lui attribuer le port de votre choix. Spring Boot charge automatiquement le fichier de propriétés de l’application et applique les configurations requises à l’application.
Par exemple, vous pouvez changer le numéro server.port
de la valeur par défaut de 8080 à server.port= 8081
.
Comment configurer Log4j pour la journalisation ?
Ces quelques étapes simples permettent de configurer Log4j pour la journalisation :
- Tout d’abord, créez votre projet Java, puis cliquez avec le bouton droit de la souris sur le projet. Naviguez vers MyEclipse->File->New->Java Project pour nommer le projet et cliquez sur finish.
- Ensuite, cliquez avec le bouton droit de la souris sur le nom de votre projet Java et sélectionnez Build Path -> Configure Build Path. Cette étape ajoutera le fichier log4j.
- Naviguez jusqu’à la bibliothèque et cliquez sur le bouton Add External JARS, et sélectionnez le fichier log4j dans le menu déroulant qui apparaît. Cliquez ensuite sur OK.
- Créez un nouveau fichier java que vous appellerez log4j.properties, puis cliquez sur finish et ajoutez ce fichier au Classpath.
- Cliquez sur Advanced dans le Classpath, puis sélectionnez l’option Add Folders (Ajouter des dossiers ) et n’oubliez pas de cliquer sur OK.
- Vous pouvez maintenant rechercher le fichier log4j.properties, cliquer sur OK et exécuter le projet.
- Vérifiez la sortie ci-dessous dans la console.
<x>[main]</x> DEBUG Exemple - Bonjour, ceci est un message de débogage
[<x>main]</x> INFO Exemple - Bonjour, ceci est un message d'information
Qu’est-ce qu’un conteneur IoC ?
Le conteneur IoC (Inversion of Control) est un conteneur central de Spring qui implémente automatiquement l’injection de dépendances. Il instancie l’application de la classe et est responsable de la configuration des objets et de l’assemblage des dépendances nécessaires.
Il gère également le cycle de vie de l’objet, de son instanciation à sa destruction.
L’IoC exécute ces tâches en utilisant la configuration des métadonnées dans le code Java, le XML et les annotations Java.
Le conteneur est appelé “inversion de contrôle” parce qu’il contrôle les objets Java et leur cycle de vie. Il s’agit là d’une tâche qui incombe au développeur.
Expliquez comment créer une application Spring Boot à l’aide de Maven
Ce processus comporte une série d’étapes.
Étape 1 : Sélectionnez le type de projet.
Étape 2 : Nommez votre projet pour le configurer, puis cliquez sur le bouton “finish” pour créer le projet.
Étape 3 : Maintenant, nous allons configurer le fichier pom.xml du projet Maven pour créer un projet Spring Boot à partir de celui-ci.
fichier pom.xml :
<projet xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.javatpoint</groupId>
<artifactId>spring-boot-example</artifactId>
<version>0.0.1-SNAPS<nom>JavaTpoint Spring Boot Example</nom>
</projet>
La configuration implique l’ajout d’un parent au projet Maven. Cela déclarera le projet Maven comme un projet enfant du projet parent.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
Étape 4 : Ensuite, ajoutez la dépendance web, spring-boot-starter-web, au fichier pom.xml.
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Étape 5: Ajoutez la version Java du projet.
<properties>
<java.version>1.8</java.version>
</properties>
Étape 6 : Notez que chaque fois que vous ajoutez de nouvelles dépendances, vous devez mettre à jour le projet Maven.
Étape 7 : Rendez le projet Maven exécutable en créant une classe Java dans le paquetage src/main/java.
Étape 8 : Ensuite, appelez la méthode d’exécution statique de la classe de l’application Spring.
Étape 9 : Enfin, exécutez la classe en tant qu’application Java.
Quels sont les avantages de Spring Boot par rapport à Spring ?
- La capacité de Spring Boot à compiler le langage source à l’aide de l’initialisateur Boot, une technique appelée bootstrapping, permet d’économiser de l’espace sur les appareils des utilisateurs et de réduire le temps de chargement de l’application.
- Contrairement à Spring, Spring Boot permet de gérer les dépendances après avoir ajouté les dépendances spring-boot sans dépendre du POM (modèle d’objet parent) ou du fichier XML.
- Spring Boot permet également aux développeurs d’utiliser des annotations ou des configurations XML sans avoir besoin d’utiliser des configurations XML.
- Les développeurs préfèrent Spring Boot en raison de la diminution du code de base nécessaire à la mise en place d’une application. En effet, Spring Boot est livré avec une base de données en mémoire et un serveur Tomcat intégré, ce qui réduit le code de base. Spring, en revanche, a plus de code de base.
- Spring Boot n’a pas nécessairement besoin de fichiers WAR (web application resource) et peut seulement s’appuyer sur le JAR (Java Resource), qui a une structure petite et plus simple et est donc plus utile pour les utilisateurs et les développeurs.
- Spring Boot intègre également automatiquement des serveurs tels que Tomcat et Jetty ; le développeur n’a donc pas besoin de configurer manuellement le serveur comme vous êtes censé le faire avec Spring.
Comment faire de la pagination dans Spring Boot ?
Le processus de pagination divise les données en sections afin d’économiser des ressources. Il implique deux champs, la taille de la page et le numéro de la page.
Le processus comprend quelques étapes, notamment
Étape 1 : Configuration initiale
Constituez une entité que nous nommerons Person en tant que classe de domaine.
@Entity
public class Person {
@Id
private long id ;
private String name ;
}
Étape 2 : Création d’un référentiel
Ensuite, utilisez un PersonRepository
extends
PagingAndSortingRepository
pour pouvoir obtenir les méthodes findAll(Pageable pageable
) et findAll(Sort sort)
pour la pagination et le tri, respectivement.
public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> {
List<Product> findAllByPrice(double price, Pageable pageable) ;
}
Étape 3 : Étape de pagination
La première étape consiste à créer un objet PageRequest, en lui transmettant le numéro et la taille de la page demandée, qui met en œuvre l’interface Pageable.
Pageable firstPageWithTwoElements = PageRequest.of(0,2) ;
Pageable secondPageWithThreeElements = PageRequest.of(1,3) ;
Transmettez ensuite cet objet PageRequest à la méthode de dépôt en tant que paramètre.
Page<Personne> allProducts = personRepository.findAllByPrice(findPageWithTwoElements) ;
List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements)
Par défaut, la méthode findAll(Pageable pageable)
renvoie un objet Page<T>
.
Expliquez comment enregistrer une auto-configuration personnalisée
Dans le fichier META-INF/spring.factories de la clé @EnableAutoConfiguration, mentionnez le nom pleinement qualifié. Cette étape permet d’enregistrer la classe d’auto-configuration.
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration
Pour construire le projet à l’aide de Maven, vous devrez placer le fichier dans le répertoire resources/META-INF.
Qu’est-ce que le bootstrapping dans Spring Boot ?
Le bootstrapping est le processus d’exécution de la logique dans l’application Spring Boot au démarrage.
Le Boot initializr compile le langage source dans Spring Boot. Ce processus permet d’économiser de l’espace sur le périphérique et de réduire le temps de chargement de l’application.
Derniers mots 👨💻
Cet article a couvert quelques questions sur Spring Boot que les recruteurs vous poseront probablement lors de votre entretien et les réponses qui vous aideront à le réussir en toute confiance. Nous espérons que vous décrocherez l’emploi de vos rêves !
Vous pouvez également apprendre quelques conseils pertinents à partir des questions posées lors d’un entretien Java.
Bonne chance !