Qu'avez-vous demandé lors de l'interview de Spring Boot 2020? Résumez ces 22 questions d'entrevue incontournables! (Avec réponse)

Insérez la description de l'image ici
Ces dernières années, les microservices populaires sont les questions d'entretien que les entreprises et les BATJ de première ligne adorent poser. Aujourd'hui, je vais reprendre les questions d'entrevue de Spring Boot qui sont toujours posées cette année. Qu'avez-vous demandé? En plus des points de connaissance de Spring Boot, j'ai également compilé quelques-unes des dernières questions d'entrevue Java et des points de connaissances de base ici, qui peuvent vous aider à améliorer et à faire progresser vos compétences. Les amis qui en ont besoin peuvent cliquer: cliquez dessus, cliquez dessus , mot de passe: csdn.
Insérez la description de l'image ici

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 fonctions Spring existantes de manière plus robuste avec le moins de travail possible.

2. Quels sont les avantages de Spring Boot?

1. Réduisez le temps et les efforts de développement et de test.
2. L'utilisation de JavaConfig permet d'éviter d'utiliser 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, Spring chargera automatiquement l'objet et le gérera comme avant. 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 attributs, vous pouvez transmettre l'environnement que vous utilisez à l'application: -Dspring.profiles.active = {enviornment}. Après avoir chargé le fichier de propriétés d'application principal, Spring chargera le fichier de propriétés d'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 d'utiliser 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 utiliser pleinement les 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 des conteneurs Spring similaires aux concepts 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, de nombreuses personnes pensent qu'il est idéal de mélanger et de faire correspondre JavaConfig avec XML.

(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 recherche basée sur un cast ou une chaîne.

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 recherché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.

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>

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. Plusieurs indicateurs doivent être vérifiés et surveillés dans un 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 disposant du 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 si le point de terminaison de l'actionneur est accessible derrière un pare-feu.

7. Comment exécuter l'application Spring Boot sur un port personnalisé?

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 aux fichiers 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.

J'ai compilé 1 000 283 pages de documents pdf pour les questions d'entrevue java pour plusieurs entreprises en 2020. Les amis qui en ont besoin peuvent cliquer: cliquez dessus, cliquez dessus , code: csdn.
Insérez la description de l'image ici

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 par 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 qui 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 tâches de traitement par lots simples et complexes peuvent utiliser le framework 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 présentation et de la couche métier. Les programmeurs peuvent gérer le code d'application, tandis que les concepteurs peuvent gérer la conception de pages 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 de gérer les exceptions à l'aide de ControllerAdvice. Nous implémentons une classe ControlerAdvice pour gérer toutes les exceptions levées par la classe de contrôleur.

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

Les dépendances suivantes sont utilisées:
spring-boot-starter-activemq
spring-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 oblige 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, et non le vol de données, car les attaquants ne peuvent pas afficher les réponses aux demandes falsifiées.

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 la communication serveur est indépendante l'une de l'autre.
3. Connexion TCP unique - la connexion initiale utilise HTTP, puis cette connexion est mise à niveau vers une connexion basée sur socket. Ensuite, cette connexion unique est utilisée pour toutes les communications futures
4. Comparé à http, l'échange de données de messages 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 questions 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é à. Il est basé sur Spring Boot Actuator, qui fournit une interface utilisateur Web qui nous permet de visualiser les métriques de plusieurs applications.

Enfin

Fournir du matériel d'apprentissage gratuit de l'architecture Java, le contenu de la technologie d'apprentissage comprend: Spring, Dubbo, MyBatis, RPC, analyse du code source, haute concurrence, haute performance, distribué, optimisation des performances, développement d'architecture avancée de microservice, etc.

Les amis dans le besoin peuvent cliquer: cliquez dessus! Cliquez ici! , Code: csdn.

Il existe également des points de connaissances de base Java + un ensemble complet de supports et de vidéos d'apprentissage pour les architectes + des livres d'interview de première ligne + des modèles de CV d'entrevue peuvent être obtenus + Ali Meituan Netease Tencent Xiaomi Iqiyi Kuaishou Bilibili questions d'entretien + Collection de code source Spring + architecture Java Livre électronique pratique + dernières questions d'entrevue 2020 des principaux fabricants.
Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_48011329/article/details/109332329
conseillé
Classement