Questions d'entretien pour Spring Boot
1. Qu'est-ce que Spring Boot ?
Spring est devenu plus complexe au fil des ans à mesure que de nouvelles fonctionnalités sont ajoutées. Visitez simplement la page et nous verrons les différentes fonctionnalités de tous les projets Spring qui peuvent être utilisés dans notre application. Si nous devons démarrer un nouveau projet Spring, nous devons ajouter un chemin de construction ou ajouter des dépendances Maven, configurer le serveur d'applications, ajouter la configuration Spring. Commencer un nouveau projet de printemps demande donc beaucoup d'efforts car nous devons maintenant tout repartir 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 passe-partout 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 un minimum d'effort
2. Pourquoi utiliser SpringBoot
Spring Boot présente de nombreux avantages, tels que :
1. Fonctionnement indépendant
Spring Boot intègre également divers conteneurs de servlets, Tomcat, Jetty, etc. Désormais, il n'est plus nécessaire de le conditionner en tant que package de guerre et de le déployer dans le conteneur. Spring Boot peut s'exécuter indépendamment tant qu'il est conditionné dans un package jar exécutable, et tous les packages dépendants sont dans un package jar.
2. Configuration simplifiée
Le démarreur web spring-boot-starter-web dépend automatiquement d'autres composants, ce qui réduit la configuration de maven.
3. Configuration automatique
Spring Boot peut configurer automatiquement les beans en fonction des classes et des packages jar du chemin de classe actuel.Par exemple, l'ajout d'un démarreur spring-boot-starter-web peut avoir des fonctions Web sans autre configuration.
Quatrièmement, pas de génération de code ni de configuration XML
Il n'y a pas de génération de code dans le processus de configuration de Spring Boot et tout le travail de configuration peut être effectué sans fichiers de configuration XML. Tout cela est fait à l'aide d'annotations conditionnelles, qui sont également l'une des fonctions principales de Spring 4.x.
5. Suivi des candidatures
Spring Boot fournit une série de points de terminaison pour surveiller les services et les applications et effectuer des vérifications de l'état
3. Quels sont les avantages de Spring Boot ?
Les avantages de Spring Boot sont :
-
1. Réduisez le temps et les efforts de développement, de test.
-
2. Utilisez JavaConfig pour éviter l'utilisation de XML.
-
3. Évitez un grand nombre d'importations Maven et divers conflits de versions.
-
4. Fournir des conseils sur les méthodes de développement.
-
5. Démarrez rapidement le développement en fournissant des valeurs par défaut.
-
6. Aucun serveur Web distinct n'est requis. 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 avant. Vous pouvez même ajouter @Autowired à une méthode de bean pour que Spring autowire les dépendances dont il a besoin.
-
8. Configuration basée sur l'environnement À l'aide de ces propriétés, vous pouvez transmettre l'environnement que vous utilisez à l'application : -Dspring.profiles.active={enviornment}. Après avoir chargé le fichier de propriétés de l'application principale, Spring chargera les fichiers de propriétés de l'application suivants dans (application{environment}.properties).
4. Quelle est l'annotation principale de Spring Boot ? De quelles annotations est-il principalement composé ?
L'annotation sur la classe de démarrage est @SpringBootApplication, qui est également l'annotation principale de Spring Boot. La combinaison principale comprend les trois annotations suivantes :
@SpringBootConfiguration : combine l'annotation @Configuration pour implémenter la fonction du fichier de configuration. @EnableAutoConfiguration : activez la fonction de configuration automatique ou désactivez une option de configuration automatique, telle que la désactivation de la fonction de configuration automatique de la source de données : @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }).
@ComponentScan : analyse des composants Spring
5. Quels sont les moyens d'exécuter Spring Boot
1) Empaquetez la commande ou placez-la dans le conteneur pour l'exécuter 2) Utilisez le plugin Maven/Gradle pour l'exécuter 3) Exécutez directement la méthode principale pour l'exécuter
6. Comment comprendre Starters dans Spring Boot ?
Que sont les débutants :
Les starters peuvent être compris comme des starters, qui contiennent une série de packages de dépendances pouvant être intégrés à l'application. Vous pouvez intégrer Spring et d'autres technologies en un seul arrêt sans chercher partout des exemples de code et des packages de dépendances. Si vous souhaitez utiliser Spring JPA pour accéder à la base de données, ajoutez simplement la
dépendance de démarrage springboot-starter-data-jpa et vous pourrez l'utiliser. Les démarreurs contiennent de nombreuses dépendances nécessaires au projet, ils peuvent s'exécuter rapidement et en continu et constituent un ensemble de dépendances transitives de gestion prises en charge.
Démarreurs nommés :
Les démarreurs officiels de Spring Boot sont nommés spring-boot-starter et représentent un type d'application spécifique. Les démarreurs tiers ne peuvent pas démarrer avec spring-boot, ils sont officiellement réservés par Spring Boot. Généralement, un tiers doit être nommé comme ceci, comme mybatis
-spring-boot-starter de mybatis.
Catégorie débutants :
1. Démarreur de classe d'application Spring Boot
2. Démarreur de production Spring Boot
.autres lanceurs tiers
7. Comment exécuter un code spécifique au démarrage de Spring Boot ?
Si vous souhaitez exécuter un code spécifique au démarrage de Spring Boot, vous pouvez implémenter l'interface ApplicationRunner ou CommandLineRunner.Ces deux interfaces sont implémentées de la même manière et ne fournissent qu'une méthode d'exécution. CommandLineRunner : commencez à obtenir les paramètres de la ligne de commande
8. Spring Boot a-t-il besoin d'un conteneur séparé pour s'exécuter ?
Pas besoin de conteneurs intégrés tels que Tomcat/Jetty
9. Qu'est-ce qu'un moniteur dans Spring Boot ?
L'actionneur de botte à ressort est l'une des fonctions importantes du cadre de botte à ressort. Les moniteurs de démarrage Spring vous aident à accéder à l'état actuel des applications en cours d'exécution en production. Plusieurs métriques doivent être vérifiées et surveillées 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 directement accessibles en tant qu'URL HTTP pour vérifier l'état
10. 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 gérons toutes les exceptions levées par la classe contrôleur en implémentant une classe ControlerAdvice
11. Comment comprenez-vous Starters dans Spring Boot
Les starters peuvent être compris comme des starters, qui contiennent une série de packages de dépendances pouvant être intégrés à l'application. Vous pouvez intégrer Spring et d'autres technologies en un seul arrêt sans chercher partout des exemples de code et des packages de dépendances. Si vous souhaitez utiliser Spring JPA pour accéder à la base de données, ajoutez simplement la
dépendance de démarrage spring-boot-starter-data-jpa et vous pouvez l'utiliser.
12. Quels sont les démarreurs de springboot couramment utilisés
spring-boot-starter-web intégré tomcat et le développement Web nécessite la prise en charge de servlet et jsp
spring-boot-starter-data-jpa prise en charge de la base de données spring-boot-starter-data-redis prise en charge de la base de données redis spring-boot-starter-data-solr prise en charge de solr
mybatis-spring-boot-starter démarreur d'intégration mybatis tiers
13. Quels sont les moyens pour SpringBoot de réaliser un déploiement à chaud
Il existe deux manières principales : Spring
Loaded Spring-boot-devtools
14. Comment comprendre l'ordre de chargement de la configuration de Spring Boot
Dans Spring Boot, la configuration peut être chargée des manières suivantes. 1) fichier de propriétés ;
2) Fichiers YAML ; 3) Variables d'environnement système ;
4) Arguments de la ligne de commande ; etc...
Bienvenue pour rejoindre l'échange de développement d'architecture Java : 857710406, plus de questions d'entrevue et de vidéos avancées sont distribuées gratuitement !
15. Quels sont les fichiers de configuration de base de Spring Boot ? Quelle est leur différence ?
Les fichiers de configuration de base de Spring Boot sont les fichiers de configuration d'application et d'amorçage. Le fichier de configuration de l'application est facile à comprendre et est principalement utilisé pour la configuration automatique des projets Spring Boot. Le fichier de configuration d'amorçage contient les scénarios d'application suivants.
.Lorsque vous utilisez le centre de configuration Spring Cloud Config, vous devez ajouter des propriétés de configuration connectées au centre de configuration dans le fichier de configuration bootstrap pour charger les informations de configuration du centre de configuration externe ;
Certaines propriétés fixes qui ne peuvent pas être remplacées ;
.Quelques scénarios de chiffrement/déchiffrement
16. Comment intégrer Spring Boot et ActiveMQ
Pour intégrer Spring Boot et ActiveMQ, nous utilisons la
dépendance spring-boot-starter-activemq. Il nécessite très peu de configuration et ne nécessite aucun code passe-partout
17. Qu'est-ce que JavaConfig ?
Spring JavaConfig est un produit de la communauté Spring qui fournit une approche purement Java pour configurer le conteneur Spring IoC. Cela permet donc d'éviter la configuration XML. Les avantages de l'utilisation de JavaConfig sont :
1. Configuration orientée objet. Étant donné que les configurations sont définies en tant que classes dans JavaConfig, les utilisateurs peuvent tirer pleinement parti des fonctionnalités orientées objet de Java. Une classe de configuration peut hériter d'une autre, remplacer ses méthodes @Bean, etc.
2. Réduisez ou éliminez la configuration XML. Les avantages d'une configuration externalisée basée sur les principes d'injection de dépendances ont été démontré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 les conteneurs Spring avec un concept similaire à la configuration XML. Techniquement parlant, il est possible de configurer le conteneur en utilisant uniquement les classes de configuration JavaConfig, mais en pratique, beaucoup de gens pensent que mélanger et faire correspondre JavaConfig avec XML est idéal.
3. Sécurité de type et convivialité pour la refactorisation. JavaConfig fournit un moyen sûr 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 conversion ni recherche basée sur des chaînes.
18. Comment recharger les modifications sur Spring Boot sans redémarrer le serveur ?
Ceci peut être réalisé à l'aide d'outils DEV. Avec cette dépendance, vous pouvez enregistrer toutes les modifications et le tomcat intégré redémarrera. Spring Boot dispose d'un module Outils de développement (DevTools), qui permet d'améliorer la productivité des développeurs. Un défi majeur pour 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. Les modules DevTools répondent 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 l'application.
org.springframework.boot spring-boot-devtools vrai19. Qu'est-ce qu'un moniteur dans Spring Boot ?
L'actionneur de botte à ressort est l'une des fonctions importantes du cadre de botte à ressort. Les moniteurs de démarrage Spring vous aident à accéder à l'état actuel des applications en cours d'exécution en production. Plusieurs métriques doivent être vérifiées et surveillées 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 accessibles directement en tant qu'URL HTTP pour vérifier l'état.
20. Comment désactiver la sécurité du point de terminaison Actuator dans Spring Boot ?
Tous les points de terminaison HTTP sensibles sont sécurisés par défaut et seuls les utilisateurs ayant le rôle ACTUATOR peuvent y accéder. La sécurité est
implémentée à l'aide de la méthode standard HttpServletRequest.isUserInRole. Nous pouvons utiliser pour désactiver la sécurité. La désactivation de la sécurité n'est recommandée que si le point de terminaison de l'actionneur est accessible derrière un pare-feu.
21. Comment exécuter l'application Spring Boot sur un port personnalisé ?
Pour exécuter une application Spring Boot sur un port personnalisé, vous pouvez spécifier le port dans application.properties.
serveur.port=8090
22. 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.
Comparés aux fichiers de propriétés, les fichiers YAML sont plus structurés et moins déroutants si nous voulons ajouter des propriétés complexes aux fichiers de configuration. On peut voir que YAML a des données de configuration hiérarchiques.
23. Comment implémenter la sécurité de l'application Spring Boot ?
Pour implémenter la sécurité Spring Boot, nous utilisons la
dépendance spring-boot-starter-security et devons ajouter une configuration de sécurité. Il nécessite très peu de code. La classe de configuration devra étendre WebSecurityConfigurerAdapter et remplacer ses méthodes.
24. Comment intégrer Spring Boot et ActiveMQ ?
Pour intégrer Spring Boot et ActiveMQ, nous utilisons
dépendances. Il nécessite très peu de configuration et ne nécessite aucun code passe-partout.
25. Comment implémenter la pagination et le tri à l'aide de Spring Boot ?
La mise en œuvre de la pagination avec Spring Boot est très simple. Passer un paginable à une méthode de référentiel est possible en utilisant Spring Data-JPA.
26. 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 Swagger pour fournir un bac à sable en ligne aux développeurs front-end. Swagger est un outil, une spécification et une mise en œuvre complète du cadre permettant de générer des représentations visuelles des services Web RESTful. Il permet de mettre à jour les documents au même rythme que le serveur. Lorsqu'ils sont correctement définis via Swagger, les consommateurs peuvent utiliser une quantité minimale de logique de mise en œuvre
pour comprendre et interagir avec les services à distance. Swagger élimine donc les conjectures des services d'appel.
27. Que sont les profils de printemps ?
Les profils Spring permettent aux utilisateurs d'enregistrer des beans basés sur des fichiers de configuration (dev, test, prod, etc.). Ainsi, lorsque l'application s'exécute en développement, seuls certains beans peuvent être chargés, tandis qu'en PRODUCTION, d'autres beans peuvent être chargés. Supposons que notre exigence est que la documentation Swagger ne soit destinée qu'aux environnements QA et que toutes les autres documentations soient désactivées. Cela peut être fait en utilisant des fichiers de configuration. Spring Boot rend le travail avec les fichiers de configuration très simple.
28. Qu'est-ce que le lot de printemps ?
Spring Boot Batch fournit des fonctions réutilisables qui sont importantes lorsqu'il s'agit de traiter un grand nombre d'enregistrements, y compris la journalisation/traçage, la gestion des transactions, les statistiques de traitement des travaux, les redémarrages de travaux, les sauts et la gestion des ressources. Il fournit également des services et des fonctions techniques plus avancés, permettant des travaux par lots extrêmement élevés et hautes performances grâce à des techniques d'optimisation et de partitionnement. Les travaux par lots simples et complexes à haut volume peuvent utiliser le cadre pour traiter des quantités importantes d'informations de manière hautement évolutive.
29. Qu'est-ce qu'un modèle FreeMarker ?
FreeMarker est un moteur de modèles basé sur Java initialement axé sur la génération de pages Web dynamiques à l'aide de l'architecture logicielle MVC. Le principal avantage de l'utilisation de Freemarker est la séparation complète des couches de présentation et de gestion. Les programmeurs peuvent gérer le code d'application tandis que les concepteurs peuvent gérer la conception de pages html. Enfin, en utilisant freemarker, ceux-ci peuvent être combinés pour donner la page de sortie finale.
30. 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 gérons toutes les exceptions levées par la classe contrôleur en implémentant une classe ControlerAdvice.
31. Quelles dépendances Maven de démarrage utilisez-vous ?
Certaines des dépendances ci-dessous sont utilisées
spring-boot-starter-activemq
spring-boot-starter-sécurité
Cela permet d'ajouter moins de dépendances et de réduire les conflits de versions.
32. Qu'est-ce qu'une attaque CSRF ?
CSRF signifie Cross Site Request Forgery. Il s'agit d'une attaque qui oblige les utilisateurs finaux à effectuer des actions indésirables sur les applications Web actuellement authentifiées. Les attaques CSRF ciblent spécifiquement les demandes de changement d'état, et non le vol de données, car l'attaquant ne peut pas voir la réponse à une demande falsifiée.
Cela permet d'ajouter moins de dépendances et de réduire les conflits de versions.
33. Qu'est-ce que WebSockets ?
WebSocket est un protocole de communication informatique qui fournit un canal de communication en duplex intégral sur une seule connexion TCP.
-
1. WebSocket est bidirectionnel - l'utilisation du client ou du serveur WebSocket peut lancer l'envoi de messages.
-
2. WebSocket est en duplex intégral - la communication client et serveur est indépendante l'une de l'autre.
-
3. Une seule connexion TCP - la connexion initiale utilise HTTP, puis cette connexion est mise à niveau vers une connexion basée sur socket. Cette connexion unique est ensuite utilisée pour toutes les communications futures
-
4. Léger - Comparé à http, l'échange de données de message WebSocket est beaucoup plus léger.
34. 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 transversaux. Ces problèmes transversaux ne sont pas les mêmes que la logique métier principale de l'application. C'est donc en séparant ces préoccupations transversales de la logique métier qu'intervient la programmation orientée aspect (AOP).
35. 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 Apache de niveau supérieur. Kafka convient à la consommation de messages hors ligne et en ligne.
36. Comment pouvons-nous surveiller tous les microservices Spring Boot ?
Spring Boot fournit des points de terminaison de surveillance pour surveiller les métriques des microservices individuels. Ces points de terminaison sont utiles pour obtenir des informations sur les applications (comme si elles sont en place) et si leurs composants (comme les bases de données, etc.) fonctionnent correctement. Cependant, un inconvénient majeur ou une difficulté d'utilisation du moniteur est que nous devons ouvrir le point de connaissance de l'application individuellement pour connaître son état ou sa santé. Imaginez un microservice impliquant 50 applications, l'administrateur devrait frapper le terminal d'exécution pour les 50 applications. Pour nous aider à faire face à cette situation, nous utiliserons le projet open source sur . Il est construit sur Spring Boot Actuator, qui fournit une interface utilisateur Web qui nous permet de visualiser les métriques pour plusieurs applications.
37. Quels sont les formats des fichiers de configuration de Spring Boot ? Quelle est la différence entre eux?
.properties et .yml, la principale différence entre eux est le format d'écriture différent. 1).propriétés
app.user.name=javastack
2).yml
application :
utilisateur :
nom : javastack
De plus, le format .yml ne prend pas en charge l'annotation @PropertySource pour importer la configuration.
38. Comment activer les fonctionnalités de Spring Boot ?
1) Hériter du
projet spring-boot-starter-parent 2) Importer les dépendances du projet spring-boot-dependencies
39. Quelle est la structure des répertoires de Spring Boot ?
cn
±javastack
±MonApplication.java|
±Customer.java
±CustomerController.java±CustomerService.java±CustomerRepository.java
±commande
±Order.java
±OrderController.java±OrderService.java±OrderRepository.java
Cette structure de répertoires est la pratique courante et recommandée, et l'annotation @SpringBootApplication est ajoutée à la classe d'entrée principale pour activer diverses fonctionnalités de Spring Boot, telles que la configuration automatique, l'analyse des composants, etc.
40. Quels sont les moyens d'exécuter Spring Boot ?
1) Empaquetez la commande ou placez-la dans le conteneur pour l'exécuter 2) Utilisez le plugin Maven/Gradle pour l'exécuter 3) Exécutez directement la méthode principale pour l'exécuter
41. Quel est le principe de la configuration automatique de Spring Boot ?
Les annotations @EnableAutoConfiguration, @Configuration et @ConditionalOnClass sont au cœur de la configuration automatique. Premièrement, il doit s'agir d'un fichier de configuration, et deuxièmement, il est automatiquement configuré en fonction de la présence ou non de cette classe dans le classpath.
42. Comment exécuter un code spécifique au démarrage de Spring Boot ?
Vous pouvez implémenter l'interface ApplicationRunner ou CommandLineRunner. Ces deux interfaces sont implémentées de la même manière et ne fournissent qu'une seule méthode d'exécution.
43. De combien de manières Spring Boot dispose-t-il pour lire la configuration ?
Spring Boot peut lier des variables via @PropertySource, @Value, @Environment, @ConfigurationProperties
44. Quels frameworks de journalisation Spring Boot prend-il en charge ? Quelle est la structure de journalisation recommandée et par défaut ?
Spring Boot prend en charge Java Util Logging, Log4j2, Lockback comme framework de journalisation, si vous utilisez Starters starter, Spring Boot utilisera Logback comme framework de journalisation par défaut
45. Comment Spring Boot définit-il plusieurs ensembles de configurations d'environnement différentes ?
Fournissez plusieurs ensembles de fichiers de configuration, tels que :
applcation.properties
application-dev.properties
application-test.properties
application-prod.properties
Spécifier un fichier de configuration spécifique lors de l'exécution
46. Est-ce que Spring Boot est compatible avec les anciens projets Spring et comment ?
Pour des raisons de compatibilité, utilisez l'annotation @ImportResource pour importer l'ancien fichier de configuration du projet Spring.
47. Quels sont les moyens de protéger les applications Spring Boot ?
Utiliser HTTPS en production
Utilisez Snyk pour vérifier vos dépendances et mettre à niveau vers la dernière version
Activer la protection CSRF
Empêchez les attaques XSS avec les politiques de sécurité du contenu…
48. Quelles sont les nouvelles fonctionnalités de Spring Boot 2.X ? Quelle est la différence avec 1.X ?
Modifications de configuration
Mise à niveau de la version JDK
Mise à niveau de la bibliothèque de classes tierce
Programmation Spring réactive avec prise en charge de HTTP/2
Plus d'améliorations et d'améliorations des liaisons de propriétés de configuration…
49. Comment recharger les modifications sur Spring Boot sans redémarrer le serveur ?
Ceci peut être réalisé à l'aide d'outils DEV. Avec cette dépendance, vous pouvez enregistrer toutes les modifications et le tomcat intégré redémarrera.
Spring Boot dispose d'un module Outils de développement (DevTools), qui permet d'améliorer la productivité des développeurs. Un défi majeur pour 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. Les modules DevTools répondent 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 l'application.
org.springframework.bootspring-boot-devtoolstrue
50. Le processus de springboot intégrant mybatis
Ajouter la dépendance starter maven de mybatis
org.mybatis.spring.bootmybatis-spring-boot-starter1.2.0
Ajoutez l'annotation @Mapper à l'interface de mybatis pour configurer les informations de la source de données dans application.yml
51. Quelle est la différence entre Spring Boot, Spring MVC et Spring ?
PrintempsCadre
La fonctionnalité la plus importante de Spring Framework est l'injection de dépendances. Tous les SpringModules sont soit une injection de dépendance, soit une inversion de contrôle IOC.
Lorsque nous utilisons correctement DI ou IOC, nous pouvons développer des applications faiblement couplées. Les tests unitaires d'applications faiblement couplées peuvent être effectués facilement.
SpringMVC
Spring MVC fournit une approche découplée du développement d'applications Web. En utilisant des concepts simples comme DispatcherServelet, MoudlAndView et ViewResolver, le développement d'applications Web deviendra très simple.
SpringBoot
Le problème avec Spring et SpringMVC est qu'il y a beaucoup de paramètres à configurer.
Spring Boot résout ce problème avec un projet configuré et démarré automatiquement. Pour créer plus rapidement des applications prêtes pour la production, Spring Boot fournit certaines fonctionnalités non fonctionnelles.
52. Qu'est-ce que Spring Boot Stater ?
Un lanceur est un ensemble pratique de descripteurs de dépendance qui peut être placé dans son propre programme. Vous pouvez obtenir toutes les technologies Spring et connexes dont vous avez besoin en un seul endroit, sans avoir besoin de rechercher et de copier-coller des charges d'exemples de code en fonction des descripteurs.
Par exemple, si vous souhaitez utiliser Sping et JPA pour accéder à la base de données, il suffit que votre projet inclue la
dépendance spring-boot-starter-data-jpa et vous êtes prêt à partir.
Question 4 Pouvez-vous donner un exemple pour expliquer davantage les Staters ?
Prenons un exemple de Stater - Spring Boot Stater Web.
Si vous souhaitez développer une application Web ou une application qui expose des services REST. Spring Boot Start Web est préférable. Créons un projet rapide pour Spring Boot Start Web en utilisant Spring Initializr.
Dépendances pour Spring Boot Start Web
org.springframework.boot spring-boot-starter-webLes captures d'écran ci-dessous sont les différentes dépendances ajoutées à notre application
Les dépendances peuvent être divisées en
Toute application Web classique utilisera toutes ces dépendances. Spring Boot Starter Web est préemballé avec ces dépendances.
En tant que développeur, je n'ai plus à me soucier de ces dépendances et de leurs versions compatibles.
53. Quelles autres options de projet de démarrage Spring Boot fournit-il ?
Spring Boot fournit également d'autres projets de démarrage, y compris des dépendances typiques pour développer des types d'applications spécifiques.
spring-boot-starter-web-services - Services Web SOAP spring-boot-starter-web - Applications Web et RESTful spring-boot-starter-test - Tests unitaires et d'intégration spring-boot-starter-jdbc - JDBC traditionnel
spring-boot-starter-hateoas - Ajoute la fonctionnalité HATEOAS aux services
spring-boot-starter-security - Authentification et autorisation avec SpringSecurity spring-boot-starter-data-jpa - Spring Data JPA avec Hibeernate
spring-boot-starter-data-rest - Publiez des services REST simples avec Spring Data REST
54. Comment Spring crée-t-il rapidement des applications prêtes pour la production ?
Spring Boot est dédié aux applications rapides prêtes pour la production. À cette fin, il fournit certaines fonctionnalités non fonctionnelles telles que la mise en cache, la journalisation, la surveillance et les serveurs intégrés.
spring-boot-starter-actuator - Utilisez des fonctionnalités avancées telles que la surveillance et le suivi de votre application
spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat - choisissez votre conteneur de servlet intégré spécifique
spring-boot-starter-cache - Quelle est la version minimale de Java requise pour activer la prise en charge de la mise en cache de Spring Framework ###Spring2 et Spring5 ?
Spring Boot 2.0 nécessite Java 8 ou une version plus récente. Java6 et Java7 ne sont plus pris en charge. Lecture recommandée:
55. Quel est le moyen le plus simple de créer un projet Spring Boot ?
Spring Initializr est un excellent outil pour démarrer des projets Spring Boot.
spring-boot-starter-cache - Quelle est la version minimale de Java requise pour activer la prise en charge de la mise en cache de Spring Framework ###Spring2 et Spring5 ?
Spring Boot 2.0 nécessite Java 8 ou une version plus récente. Java6 et Java7 ne sont plus pris en charge.
Comme le montre l'image ci-dessus, nous devons effectuer quelques étapes : connectez-vous à Spring Initializr, choisissez comme suit : sélectionnez
com.in28minutes.springboot comme groupe.
Sélectionnez studet-services et sélectionnez les dépendances suivantes pour le composant
WebActuatorDevTools
Cliquez pour générer GenerateProject
Importez le projet dans Eclipse. projet maven fichier-importation-existant
56. Spring Initializr est-il le seul moyen de créer des projets Spring Boot ?
non.
Spring Initiatlizr facilite la création de projets Spring Boot, mais vous pouvez également démarrer un projet en configurant un projet maven et en ajoutant les bonnes dépendances. Dans notre cours de printemps, nous utilisons deux méthodes pour créer des projets.
La première méthode est http://start.spring.io.
Une autre façon est de le faire manuellement dans le projet intitulé "Basic Web Application".
Il existe plusieurs étapes importantes pour configurer manuellement un projet Maven :
Dans Eclipse, utilisez File - New Maven Project pour créer un nouveau projet afin d'ajouter des dépendances.
Ajouter le plugin maven.
Ajoutez la classe d'application Spring Boot. Voilà, les préparatifs sont faits !
57. Comment utiliser SpringBoot pour recharger automatiquement mon application ?
Utilisez les outils de développement Spring Boot.
L'ajout des outils de développement Spring Boot dans votre projet est simple.
Ajoutez les dépendances suivantes à votre projet Spring Boot pom.xml
Redémarrez l'application et vous êtes prêt à partir.
De même, si vous souhaitez charger automatiquement des pages, jetez un œil à FiveReload.
Lors de mes tests, j'ai trouvé la vulnérabilité LiveReload, si vous l'avez trouvée lors des tests, merci de nous le faire savoir.
58. Qu'est-ce qu'un serveur embarqué ? Pourquoi utiliser un serveur embarqué ?
Pensez à ce qu'il faut pour déployer une application sur votre machine virtuelle. Étape 1 : Installer Java
La deuxième partie : Installer le serveur web ou d'application (Tomat/Wbesphere/Weblogic, etc.) La troisième partie : déployer le package war de l'application
Si nous voulons simplifier ces étapes, comment devrions-nous le faire ?
Réfléchissons à la façon d'intégrer le serveur à l'application ?
Vous n'avez besoin que d'une machine virtuelle avec Java installé, et vous pouvez déployer des applications directement dessus, n'est-ce pas cool ?
Cette idée est à l'origine des serveurs embarqués.
Lorsque nous créons une application déployable, nous intégrons un serveur (par exemple, tomcat) dans le serveur déployable.
Par exemple, pour une application Spring Boot, vous pouvez générer un jar d'application contenant Embedded Tomcat. Vous pouvez exécuter l'application Web comme une application Java normale.
Un serveur intégré est l'endroit où notre unité exécutable contient les binaires du serveur (par exemple, tomcat.jar).
59. Comment ajouter du code JS commun dans Spring Boot ?
Sous le dossier source, créez un dossier appelé static. Ensuite, vous pouvez y mettre votre contenu statique. Par exemple, le chemin vers myapp.js est resources\static\js\myapp.js
Vous pouvez vous référer à son utilisation dans jsp
<csriptsrc="/js/monapp.js">
错误:Le navigateur HAL me donne une erreur non autorisée - Une authentification complète est requise pour accéder à cette ressource.
Comment corriger cette erreur ?
Deux méthodes :
Méthode 1 : Désactiver la vérification de la sécurité
application.properties
gestion.sécurité.enabled:FALSE
Méthode 2 : recherchez le mot de passe dans le journal et transmettez-le dans l'en-tête de la demande
60. Qu'est-ce que la date du printemps ?
La mission de Spring Data est de fournir un modèle de programmation familier, cohérent et basé sur Spring pour l'accès aux données tout en conservant la spécificité du magasin de données sous-jacent. Cela facilite l'utilisation des technologies d'accès aux données, des bases de données relationnelles et non relationnelles, des frameworks de réduction de carte et des services de données basés sur le cloud.
Pour le rendre un peu plus facile, Spring Data fournit l'interface Abstractions qui n'est pas limitée par la source de données sous-jacente. Voici un exemple
interfaceTodoRepositoryextendsCrudRepository<Todo,Long>{
61. Qu'est-ce que Spring Data REST ?
Spring Data TEST peut être utilisé pour publier des ressources HATEOAS RESTful sur Spring Database. Voici un exemple utilisant JPA
@RepositoryRestResource(collectionResourceRel=“todos”,path=“todos”)
publicinterfaceTodoRepository
extendPagingAndSortingRepository<Todo,Long>{
Sans écrire trop de code, nous pouvons publier une API RESTful sur la base de données Spring. Ci-dessous quelques exemples de serveurs TEST
PUBLIER
URL :http://localhost:8080/todosUtiliser l'en-tête :Content-Type :Type :application/jsonRequest Content
spectacle de code comme ci-dessous
contenu de la réponse
La réponse contient le href de la ressource nouvellement créée.
62. Comment path=”users”, collectionResourceRel=”users” fonctionne-t-il avec Spring Data Rest ?
chemin - Le segment de chemin à exporter pour cette ressource.
collectionResourceRel - La valeur rel à utiliser lors de la génération de liens vers des ressources de collection. Utilisé lors de la génération de liens HATEOAS.
63. Lorsqu'une application Spring Boot s'exécute en tant qu'application Java, que se passe-t-il en arrière-plan ?
Si vous utilisez l'IDE Eclipse, le plugin Eclipse maven garantit que dès que des modifications apportées aux dépendances ou aux fichiers de classe seront ajoutées, elles seront compilées et prêtes dans le fichier cible ! Après cela, c'est la même chose que n'importe quelle autre application Java.
Lorsque vous démarrez l'application Java, le fichier de configuration automatique de démarrage de printemps est activé par magie.
Lorsque l'application Spring Boot détecte que vous développez une application Web, elle démarre tomcat.
64. Pouvons-nous remplacer tomcat par jetty dans spring-boot-starter-web ?
Supprimez les dépendances existantes dans spring-boot-starter-web et ajoutez les éléments suivants.
65. Comment générer un fichier WAR avec Spring Boot ?
Lecture recommandée:
Voici un lien direct vers la documentation du printemps :
66. Comment déployer sur différents serveurs à l'aide de Spring Boot ?
Vous devez effectuer les deux étapes suivantes :
Générer un fichier war dans un projet.
Déployez-le sur votre serveur préféré (websphere ou Weblogic ou Tomcat et ainsi de suite).
Étape 1 : Ce guide de démarrage devrait vous aider à :
Étape 2 : Cela dépend de votre serveur.
67. Où est la différence entre RequestMapping et GetMapping ?
RequestMapping a des attributs de classe et peut exécuter GET, POST, PUT ou d'autres méthodes de requête dans l'annotation.
GetMapping est un cas particulier de la méthode de requête GET. C'est juste une extension de ResquestMapping pour plus de clarté.
68. Pourquoi ne recommandons-nous pas d'utiliser Spring Data Rest dans des applications réelles ?
Nous pensons que Spring Data Rest est idéal pour le prototypage rapide ! Utiliser avec prudence dans les grandes applications. Avec Spring Data REST, vous pouvez publier vos entités de données directement en tant que services RESTful.
Lorsque vous concevez un serveur RESTful, les meilleures pratiques dictent que votre interface doit prendre en compte deux éléments importants :
votre gamme de modèles. votre client.
Avec Spring Data REST, vous n'avez plus besoin de penser à ces deux aspects, il vous suffit de publier l'entité en tant que service TEST.
C'est pourquoi nous vous recommandons d'utiliser Spring Data Rest en plus du prototypage rapide ou comme solution initiale pour un projet. Ce n'est pas une bonne note pour un projet d'évolution complet.
69. Comment changer le nom du package d'un projet dans Spring Initializer ?
La bonne nouvelle est que vous pouvez le personnaliser. Cliquez sur le lien "Aller à la version complète". Vous pouvez configurer le nom du package que vous souhaitez modifier !
70. Où puis-je trouver la liste complète des propriétés configurables dans application.propertierde ?
Voici le guide complet :
71. Quelles sont les différences entre JPA et Hibernate ?
bref
JPA est une spécification ou une interface Hibernate est une implémentation de JPA
Lorsque nous utilisons JPA, nous n'avons pas besoin d'utiliser le package d'importation hibernate lorsque nous utilisons les annotations et les interfaces du package javax.persistence.
Nous vous recommandons d'utiliser les annotations JPA car nous ne les lions pas à Hibernate en tant qu'implémentation. Plus tard (je sais - moins d'un pour cent de chance), nous pourrons utiliser une autre implémentation JPA.
72. Quelles dépendances sont nécessaires pour démarrer une application JPA connectée à la base de données en mémoire H2 à l'aide de Spring Boot ?
Dans un projet Spring Boot, vous pouvez charger la console H2 lorsque vous vous assurez que les dépendances suivantes sont toutes dans le chemin de classe.
lanceur web
h2
Les autres dépendances de l'activateur de données jpa sont les suivantes :
Quelques points à noter :
Une mémoire de données interne n'existe que pendant l'exécution de l'application. C'est un moyen efficace d'apprendre le framework. Ce n'est pas la façon dont vous voulez que l'application du monde réel soit.
Dans la question "Comment me connecter à une base de données externe ?", nous avons expliqué comment se connecter à une base de données de votre choix.
73. Comment choisir Hibernate comme implémentation par défaut de JPA sans aucune configuration ?
Parce que Spring Boot est configuré automatiquement. Voici les dépendances que nous avons ajoutées
org.springframework.boot spring-boot-starter-data-jpaspring-boot-stater-data-jpa a des dépendances de transition pour Hibernate et JPA.
Lorsque Spring Boot détecte Hibernate sur le chemin de classe, il le configure automatiquement comme implémentation JPA par défaut.
74. Où se trouvent les informations de connexion à la base de données spécifiées ? Comment sait-il se connecter automatiquement à H2 ?
C'est la magie de la configuration automatique de Spring Boot.
De:
La configuration automatique de Spring Boot tente de configurer automatiquement votre application Spring en fonction des dépendances jar que vous avez ajoutées. Par exemple, si HSQLDBis existe dans votre classpath et que le bean de connexion à la base de données n'a pas été configuré manuellement, nous pouvons configurer automatiquement une base de données en mémoire.
Lecture complémentaire :
75. Comment se connecte-t-on à une base de données externe comme MSSQL ou orcale ?
Réfléchissons à cela en utilisant MySQL comme exemple :
Étape 1 - Ajouter les dépendances du connecteur mysql à pom.xml
Étape 2 - Supprimer les dépendances de H2 de pom.xml
Ou du moins en faire la portée du test.
Étape 3 - Installez votre base de données MySQL
Étape 4 - Configurez votre connexion à la base de données MySQL
Configurer application.properties
Étape 5 - Redémarrez et vous êtes prêt à partir !
C'est si simple!
76. Quel est le nom de la base de données H2 par défaut configurée par Spring Boot ? Pourquoi le nom de base de données par défaut testdb ?
Dans application.properties, toutes les valeurs par défaut sont listées
Retrouvez les biens ci-dessous
spring.datasource.name=testdb#Nomdelasourcededonnées.
Si vous utilisez la base de données de stockage interne H2, elle définit le nom que Spring Boot utilisera pour installer votre base de données H2.
77. Si H2 n'est pas dans le classpath, la situation ci-dessus se produira-t-elle ?
signalera l'erreur suivante
Impossible de déterminer la classe de pilote de base de données intégrée pour le type de base de données NONE
Ajoutez H2 à pom.xml et redémarrez votre serveur
[Le transfert d'image du lien externe a échoué, le site source peut avoir un mécanisme anti-leech, il est recommandé de sauvegarder l'image et de la télécharger directement (img-LE3rHXvv-1660643940589) (https://upload-images.jianshu.io/upload_images /28366454-b2e1b47b75680772.png ?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
78. Pouvez-vous donner un exemple d'utilisation de ReadOnly comme gestion des transactions ?
Lorsque vous lisez le contenu de la base de données, vous souhaitez définir la description de l'utilisateur ou une autre description dans la transaction en mode lecture seule afin qu'Hebernate n'ait pas besoin de vérifier à nouveau l'entité pour les modifications. C'est très efficace.
79. Quelle est la meilleure façon de publier des configurations personnalisées pour les applications utilisateur Spring Boot ?
Le problème avec @Value est que vous pouvez attribuer votre valeur de configuration via l'application. Une meilleure opération consiste à adopter une approche centralisée. Vous pouvez définir un composant de configuration à l'aide de @ConfigurationProperties.
Vous pouvez configurer les paramètres dans application.properties.
80. Quelles sont les exigences pour les fichiers de configuration ?
Le développement d'applications d'entreprise est complexe et vous avez besoin d'une combinaison d'environnements :
Développeur
AQ
StageProduction
Dans chaque environnement, vous souhaitez des configurations d'application différentes.
Les fichiers de configuration facilitent différentes configurations d'application dans différents environnements.
Spring et Spring Boot fournissent des fonctionnalités que vous pouvez spécifier.
Quelles sont les configurations des différents environnements dans les différents fichiers de configuration ? Définit le profil actif pour un environnement donné.
Spring Boot choisira la configuration de l'application en fonction du profil actif défini dans l'environnement spécifique.
81. Comment utiliser le fichier de configuration pour configurer la configuration d'un environnement spécifique via Spring Boot ?
Le fichier de configuration n'est pas la clé pour définir l'environnement.
Dans l'exemple suivant, nous utiliserons deux fichiers de configuration
devprod
La configuration d'application par défaut se trouve dans application.properties. Regardons l'exemple suivant : application.properties
Nous voulons personnaliser la propriété application.properties pour le fichier dev. Nous devons créer un fichier appelé
application-dev.properties et remplacer les propriétés que nous voulons personnaliser.
application-dev.properties
basic.message : message dynamique dans DEV
Une fois que vous avez spécifiquement configuré le profil, vous devez définir un profil actif dans l'environnement. Il existe plusieurs façons de procéder :
Utilisez Dspring.profiles.active=prod dans les paramètres de la machine virtuelle
Utilisez spring.profiles.active=prod dans application.properties
82. Comment configurer une application Spring Boot avec Maven ?
Nous pouvons inclure Spring Boot dans un projet Maven comme n'importe quelle autre bibliothèque. Cependant, le meilleur moyen est d'
hériter du projet spring-boot-starter-parent et de déclarer une dépendance au démarreur Spring Boot. Cela permet à notre projet de réutiliser les paramètres par défaut de Spring Boot. L'héritage du projet spring-boot-starter-parent est très simple - il suffit de spécifier un élément parent dans pom.xml :
Nous pouvons trouver la dernière version de
spring-boot-starter-parent dans le référentiel central Maven. La méthode ci-dessus est très pratique mais ne répond pas forcément aux besoins réels. Par exemple, l'entreprise exige que toutes les dépendances du projet soient construites à partir d'une nomenclature standard, nous ne pouvons pas le faire de la manière ci-dessus. Dans ce cas, nous pouvons faire une référence comme suit :