Les 22 questions d'entretien de Spring Boot partagées par le patron d'Ali P7 sont finalement arrivées pour rien!

Questions d'entretiens chez Spring Boot

1. Qu'est-ce que Spring Boot?

2. Quels sont les avantages de Spring Boot?

3. Qu'est-ce que JavaConfig?

4. Comment recharger les modifications sur Spring Boot sans redémarrer le serveur?

5. Qu'est-ce que le moniteur dans Spring Boot?

6. Comment désactiver la sécurité des points de terminaison Actuator dans Spring Boot?

7. Comment exécuter des applications Spring Boot sur des ports personnalisés?

8. Qu'est-ce que YAML?

9. Comment réaliser la sécurité de l'application Spring Boot?

10. Comment intégrer Spring Boot et ActiveMQ?

11. Comment utiliser Spring Boot pour implémenter la pagination et le tri?

12. Qu'est-ce que Swagger? L'avez-vous implémenté avec Spring Boot?

13. Qu'est-ce que les profils Spring?

14. Qu'est-ce que Spring Batch?

15. Qu'est-ce qu'un modèle FreeMarker?

16. Comment utiliser Spring Boot pour implémenter la gestion des exceptions?

17. Quelles dépendances maven de démarrage avez-vous utilisées?

18. Qu'est-ce qu'une attaque CSRF?

19. Qu'est-ce que WebSockets?

20. Qu'est-ce que l'AOP?

21. Qu'est-ce qu'Apache Kafka?

22. Comment surveillons-nous tous les microservices Spring Boot?

 

1. Qu'est-ce que Spring Boot?

Au fil des ans, avec l'ajout de nouvelles fonctionnalités, le printemps est devenu de plus en plus complexe. Visitez la page du site officiel du printemps, nous verrons toutes les différentes fonctions du projet Spring qui peuvent être utilisées dans notre application. Si un nouveau projet Spring doit être démarré, nous devons ajouter le chemin de construction ou ajouter des dépendances Maven, configurer le serveur d'applications et ajouter la configuration Spring. Par conséquent, démarrer un nouveau projet de printemps demande beaucoup d'efforts, car nous devons maintenant tout faire à partir de zéro.

Spring Boot est la solution à ce problème. Spring Boot a été construit au-dessus du framework Spring existant. Avec Spring Boot, nous évitons tout le code standard et la configuration que nous devions faire auparavant. Par conséquent, Spring Boot peut nous aider à utiliser les fonctionnalités Spring existantes de manière plus robuste avec le moins de travail possible.

 

2. Quels sont les avantages de Spring Boot?

Les avantages de Spring Boot sont:

1. Réduisez le temps et les efforts de développement et de test.

2. L'utilisation de JavaConfig permet d'éviter l'utilisation de XML.

3. Évitez un grand nombre d'importations Maven et divers conflits de version.

4. Fournir des conseils et des méthodes de développement.

5. Démarrez rapidement le développement en fournissant les valeurs par défaut.

6. Il n'est pas nécessaire de disposer d'un serveur Web distinct. Cela signifie que vous n'avez plus besoin de démarrer Tomcat, Glassfish ou quoi que ce soit d'autre.

7. Moins de configuration est nécessaire car il n'y a pas de fichier web.xml. Ajoutez simplement la classe annotée avec @Configuration, puis ajoutez la méthode annotée avec @Bean, et Spring chargera automatiquement l'objet et le gérera comme auparavant. Vous pouvez même ajouter @Autowired à la méthode bean pour que Spring charge automatiquement les dépendances requises.

8. Configuration basée sur l'environnement Grâce à ces propriétés, vous pouvez transmettre l'environnement que vous utilisez à l'application: -Dspring.profiles.active = {environnement}. Après avoir chargé le fichier de propriétés de l'application principale, Spring chargera le fichier de propriétés de l'application suivant dans (application {environnement} .properties).

 

3. Qu'est-ce que JavaConfig?

Spring JavaConfig est un produit de la communauté Spring. Il fournit une méthode Java pure pour configurer le conteneur Spring IoC. Cela permet donc d'éviter l'utilisation de la configuration XML. Les avantages de l'utilisation de JavaConfig sont:

(1) Configuration orientée objet. La configuration étant définie comme une classe dans JavaConfig, les utilisateurs peuvent tirer pleinement parti des fonctionnalités orientées objet de Java. Une classe de configuration peut en hériter une autre, remplacer sa méthode @Bean, etc.

(2) Réduisez ou éliminez la configuration XML. Les avantages d'une configuration externalisée basée sur le principe de l'injection de dépendances ont été prouvés. Cependant, de nombreux développeurs ne souhaitent pas basculer entre XML et Java. JavaConfig fournit aux développeurs une méthode Java pure pour configurer le conteneur Spring similaire au concept de configuration XML. D'un point de vue technique, il est possible d'utiliser uniquement la classe de configuration JavaConfig pour configurer le conteneur, mais en fait, beaucoup de gens pensent que mélanger et faire correspondre JavaConfig avec XML est idéal.

(3) Type de sécurité et de refactoring convivial. JavaConfig fournit un moyen sécurisé de configurer le conteneur Spring. Grâce à la prise en charge des génériques par Java 5.0, les beans peuvent désormais être récupérés par type plutôt que par nom, sans aucune conversion ni recherche basée sur des chaînes.

 

4. Comment recharger les modifications sur Spring Boot sans redémarrer le serveur?

Ceci peut être réalisé à l'aide de l'outil DEV. Avec cette dépendance, vous pouvez enregistrer toutes les modifications et le tomcat intégré redémarrera. Spring Boot dispose d'un module d'outils de développement (DevTools), qui permet d'améliorer la productivité des développeurs. L'un des principaux défis auxquels sont confrontés les développeurs Java est de déployer automatiquement les modifications de fichiers sur le serveur et de redémarrer automatiquement le serveur. Les développeurs peuvent recharger les modifications sur Spring Boot sans redémarrer le serveur. Cela éliminera le besoin de déployer manuellement les modifications à chaque fois. Spring Boot n'avait pas cette fonctionnalité lors de la sortie de sa première version. C'est la fonctionnalité la plus demandée par les développeurs. Le module DevTools répond pleinement aux besoins des développeurs. Ce module sera désactivé dans l'environnement de production. Il fournit également une console de base de données H2 pour mieux tester les applications.

 
  1. <dependency>

  2. <groupId>org.springframework.boot</groupId>

  3. <artifactId>spring-boot-devtools</artifactId>

  4. <optional>true</optional>

  5.  

 

5. Qu'est-ce que le moniteur dans Spring Boot?

L'actionneur de démarrage à ressort est l'une des fonctions importantes du cadre de démarrage à ressort. Le moniteur de démarrage Spring vous aide à accéder à l'état actuel de l'application en cours d'exécution dans l'environnement de production. Il existe plusieurs indicateurs qui doivent être vérifiés et surveillés dans l'environnement de production. Même certaines applications externes peuvent utiliser ces services pour déclencher des messages d'alerte au personnel concerné. Le module de surveillance expose un ensemble de points de terminaison REST auxquels il est possible d'accéder directement en tant qu'URL HTTP pour vérifier l'état.

 

6. Comment désactiver la sécurité des points de terminaison Actuator dans Spring Boot?

Par défaut, tous les points de terminaison HTTP sensibles sont sécurisés et seuls les utilisateurs avec le rôle ACTUATOR peuvent y accéder. La sécurité est implémentée à l'aide de la méthode HttpServletRequest.isUserInRole standard. Nous pouvons utiliser pour désactiver la sécurité. Il est recommandé de désactiver la sécurité uniquement lorsque le point de terminaison de l'actionneur est accessible derrière un pare-feu.

 

7. Comment exécuter des applications Spring Boot sur des ports personnalisés?

Afin d'exécuter des applications Spring Boot sur un port personnalisé, vous pouvez spécifier le port dans application.properties. server.port = 8090

 

8. Qu'est-ce que YAML?

YAML est un langage de sérialisation de données lisible par l'homme. Il est généralement utilisé pour les fichiers de configuration. Par rapport au fichier de propriétés, si nous voulons ajouter des propriétés complexes au fichier de configuration, le fichier YAML est plus structuré et moins déroutant. On peut voir que YAML a des données de configuration hiérarchiques.

 

9. Comment réaliser la sécurité de l'application Spring Boot?

Afin de garantir la sécurité de Spring Boot, nous utilisons la dépendance spring-boot-starter-security, et une configuration de sécurité doit être ajoutée. Cela nécessite très peu de code. La classe de configuration devra étendre WebSecurityConfigurerAdapter et remplacer ses méthodes.

 

10. Comment intégrer Spring Boot et ActiveMQ?

Pour intégrer Spring Boot et ActiveMQ, nous utilisons des dépendances. Il nécessite très peu de configuration et aucun code passe-partout.

 

11. Comment utiliser Spring Boot pour implémenter la pagination et le tri?

L'utilisation de Spring Boot pour implémenter la pagination est très simple. Utilisez Spring Data-JPA pour transmettre paginable à la méthode du référentiel.

 

12. Qu'est-ce que Swagger? L'avez-vous implémenté avec Spring Boot?

Swagger est largement utilisé pour visualiser les API, en utilisant l'interface utilisateur de Swagger pour fournir des sandbox en ligne aux développeurs frontaux. Swagger est un outil pour générer des représentations visuelles des services Web RESTful, des spécifications et une implémentation complète du framework. Il permet de mettre à jour les documents à la même vitesse que le serveur. Lorsqu'ils sont correctement définis via Swagger, les consommateurs peuvent utiliser le moins de logique d'implémentation pour comprendre et interagir avec les services distants. Par conséquent, Swagger élimine les conjectures lors de l'appel de services.

 

13. Qu'est-ce que les profils Spring?

Spring Profiles permet aux utilisateurs d'enregistrer des beans en fonction des fichiers de configuration (dev, test, prod, etc.). Par conséquent, lorsque l'application est en cours de développement, seuls certains beans peuvent être chargés, tandis qu'en PRODUCTION, certains autres beans peuvent être chargés. Supposons que notre exigence soit que le document Swagger ne s'applique qu'à l'environnement QA et que tous les autres documents soient désactivés. Cela peut être fait à l'aide de fichiers de configuration. Spring Boot facilite l'utilisation des fichiers de configuration.

 

14. Qu'est-ce que Spring Batch?

Spring Boot Batch fournit des fonctions réutilisables, ces fonctions sont très importantes lors du traitement d'un grand nombre d'enregistrements, y compris le journal / traçage, la gestion des transactions, les statistiques de traitement des travaux, le redémarrage des travaux, le saut et la gestion des ressources. Il fournit également des services et des fonctions techniques plus avancés Grâce à la technologie d'optimisation et de partitionnement, il est possible de réaliser des travaux de traitement par lots extrêmement élevés et haute performance. Les travaux de traitement par lots simples et complexes peuvent utiliser l'infrastructure pour traiter des quantités importantes et importantes d'informations de manière hautement évolutive.

 

15. Qu'est-ce qu'un modèle FreeMarker?

FreeMarker est un moteur de modèle basé sur Java qui s'est initialement concentré sur l'utilisation de l'architecture logicielle MVC pour la génération dynamique de pages Web. Le principal avantage de l'utilisation de Freemarker est la séparation complète de la couche de présentation et de la couche de gestion. Le programmeur peut gérer le code de l'application et le concepteur peut gérer la conception de la page html. Enfin, utilisez freemarker pour les combiner pour donner la page de sortie finale.

 

16. Comment utiliser Spring Boot pour implémenter la gestion des exceptions?

Spring fournit un moyen très utile d'utiliser ControllerAdvice pour gérer les exceptions. Nous implémentons une classe ControlerAdvice pour gérer toutes les exceptions levées par la classe de contrôleur.

 

17. Quelles dépendances maven de démarrage avez-vous utilisées?

Certaines des dépendances suivantes sont utilisées

printemps-démarrage-activemq

ressort-boot-starter-security

Cela permet d'augmenter moins de dépendances et de réduire les conflits de version.

 

18. Qu'est-ce qu'une attaque CSRF?

CSRF signifie falsification de demandes intersites. Il s'agit d'une attaque qui force l'utilisateur final à effectuer des actions indésirables sur l'application Web actuellement authentifiée. Les attaques CSRF ciblent spécifiquement les demandes de changement d'état, pas le vol de données, car l'attaquant ne peut pas afficher la réponse à la demande falsifiée.

 

19. Qu'est-ce que WebSockets?

WebSocket est un protocole de communication informatique qui fournit un canal de communication en duplex intégral via une seule connexion TCP.

1. WebSocket est un client ou serveur WebSocket bidirectionnel pour lancer l'envoi de messages.

2. WebSocket est un client en duplex intégral et les communications serveur sont indépendantes les unes des autres.

3. Connexion TCP unique - la connexion initiale utilise HTTP, puis cette connexion est mise à niveau vers une connexion basée sur un socket. Ensuite, cette connexion unique est utilisée pour toutes les communications futures

4. Comparé à http, l'échange de données de message WebSocket est beaucoup plus léger.

 

20. Qu'est-ce que l'AOP?

Dans le processus de développement logiciel, les fonctions qui s'étendent sur plusieurs points d'une application sont appelées problèmes croisés. Ces problématiques transversales sont différentes de la logique métier principale de l'application. Par conséquent, séparer ces préoccupations transversales de la logique métier est le lieu de la programmation orientée aspect (AOP).

 

21. Qu'est-ce qu'Apache Kafka?

Apache Kafka est un système de messagerie de publication-abonnement distribué. Il s'agit d'un système de messagerie de publication-abonnement évolutif et tolérant aux pannes, qui nous permet de créer des applications distribuées. Il s'agit d'un projet de niveau supérieur Apache. Kafka convient à la consommation de messages hors ligne et en ligne.

 

22. Comment surveillons-nous tous les microservices Spring Boot?

Spring Boot fournit des points de terminaison de surveillance pour surveiller les métriques de chaque microservice. Ces points de terminaison sont utiles pour obtenir des informations sur les applications (par exemple si elles ont été démarrées) et si leurs composants (tels que les bases de données, etc.) fonctionnent correctement. Cependant, l'un des principaux inconvénients ou difficultés de l'utilisation du moniteur est qu'il faut ouvrir les points de connaissance de l'application séparément pour comprendre son état ou son état de santé. Imaginez un microservice impliquant 50 applications, l'administrateur devra frapper les terminaux d'exécution des 50 applications. Pour nous aider à faire face à cette situation, nous utiliserons le projet open source situé à l'adresse. Il est construit sur Spring Boot Actuator, qui fournit une interface utilisateur Web qui nous permet de visualiser les métriques de plusieurs applications.

Il a fallu 1 mois pour trier 1000 questions d'entrevue java pour plusieurs entreprises en 2020 et plus de 400 pages de documents pdf. Bienvenue à tous à faire attention à mon compte officiel: Kylin modifie les bogues, les articles y seront mis à jour et les informations triées sera également placé à l'intérieur.

En réponse aux points de connaissance demandés dans l’entretien ci-dessus, j’ai résumé la plupart des questions et réponses de l’entretien liées à l’entretien avec le programmeur Java de la société Internet. Les documents et le matériel d’architecture sont partagés avec tout le monde. J’espère vous aider avant l’entretien. Révision et trouver un bon emploi permet également à chacun de gagner du temps pour rechercher des informations sur Internet pour apprendre.

 

Enfin

Bienvenue à tous pour communiquer ensemble, ce n'est pas facile d'organiser les informations, si vous aimez l'article, n'oubliez pas de me suivre et de me donner un like, merci pour votre soutien!

Je suppose que tu aimes

Origine blog.csdn.net/QLCZ0809/article/details/112253564
conseillé
Classement