Questions d'entretien sur les nouvelles Java 2020 - Printemps
Le but de Spring à utiliser est le suivant : résoudre la complexité du développement d'applications d'entreprise. Spring est un framework léger d'inversion de contrôle et de conteneur orienté aspect. Spring peut configurer et combiner des composants simples dans des applications complexes.
(Recommandations associées : questions d'entretien Java)
1.Pourquoi utiliser Spring ?
1. Introduction
Objectif : résoudre la complexité du développement d'applications d'entreprise
Fonction : utiliser JavaBean de base au lieu d'EJB et fournir davantage d'applications d'entreprise Fonction
Portée : toute application Java
En termes simples, Spring est un framework de conteneurs léger d'inversion de contrôle (IoC) et orienté aspect (AOP).
2. Léger
Le ressort est léger en termes de taille et de frais généraux. Le framework Spring complet peut être distribué dans un fichier JAR d'une taille d'un peu plus de 1 Mo. Et la surcharge de traitement requise par Spring est négligeable. De plus, Spring est non intrusif : généralement, les objets d'une application Spring ne dépendent pas de classes Spring spécifiques.
3. Inversion de contrôle
Spring favorise le couplage lâche grâce à une technologie appelée Inversion de contrôle (IoC). Lorsque l'IoC est appliqué, les autres objets dont dépend un objet sont transmis passivement, au lieu que l'objet lui-même crée ou trouve des objets dépendants. Vous pouvez considérer IoC comme l'opposé de JNDI : au lieu que l'objet recherche les dépendances du conteneur, le conteneur transmet activement les dépendances à l'objet lorsqu'il est initialisé sans attendre que l'objet le demande.
4. Orienté aspect
Spring fournit un support riche pour la programmation orientée aspect, permettant la séparation de la logique métier des applications et des services au niveau du système (tels que l'audit et la gestion des transactions) Mener un développement cohérent . Les objets d'application implémentent uniquement ce qu'ils sont censés faire - une logique métier complète - rien de plus. Ils ne sont pas responsables (ni même conscients) d'autres problèmes au niveau du système, tels que la journalisation ou la prise en charge des transactions.
5. Conteneur
Spring contient et gère la configuration et le cycle de vie des objets d'application. En ce sens, il s'agit d'un conteneur Vous pouvez configurer la façon dont chacun de vos beans est créé—— Basé. sur un prototype configurable, votre bean peut créer une seule instance ou générer une nouvelle instance à chaque fois que cela est nécessaire - et comment elles sont liées les unes aux autres. Cependant, Spring ne doit pas être confondu avec les conteneurs EJB lourds traditionnels, qui sont souvent grands, encombrants et difficiles à utiliser.
6. Framework
Spring peut configurer et combiner des composants simples en applications complexes. Dans Spring, les objets d'application sont composés de manière déclarative, généralement dans un fichier XML. Spring fournit également de nombreuses fonctions de base (gestion des transactions, intégration de framework de persistance, etc.), vous laissant le développement de la logique applicative.
Toutes ces fonctionnalités Spring vous permettent d'écrire du code plus propre, plus gérable et plus facile à tester. Ils fournissent également un support de base pour divers modules de Spring.
2. Expliquez ce qu'est l'aop ?
AOP (Aspect-Oriented Programming, programmation orientée aspect) peut être considéré comme le complément et l'amélioration de la POO (Object-Oriented Programming, programmation orientée objet). La POO introduit des concepts tels que l'encapsulation, l'héritage et le polymorphisme pour établir une hiérarchie d'objets afin de simuler un ensemble de comportements courants.
Lorsque nous devons introduire un comportement public face à des objets dispersés, la POO est impuissante. En d’autres termes, la POO permet de définir des relations de haut en bas, mais elle ne convient pas pour définir des relations de gauche à droite. Par exemple, la fonction de journalisation. Le code de journalisation a tendance à être réparti horizontalement dans toutes les hiérarchies d'objets, n'ayant rien à voir avec les fonctionnalités de base des objets auxquels il est réparti.
Il en va de même pour d'autres types de code tels que la sécurité, la gestion des exceptions et la persistance transparente. Ce type de code non pertinent dispersé partout est appelé code transversal. Dans la conception POO, il conduit à la duplication d'une grande quantité de code et n'est pas propice à la réutilisation de divers modules.
La technologie AOP est tout le contraire. Elle utilise une technologie appelée « transversale » pour disséquer l'intérieur de l'objet encapsulé et encapsuler les comportements publics qui affectent plusieurs classes dans un module réutilisable et le nommer « Aspect ». .
Le soi-disant "aspect", en termes simples, consiste à encapsuler la logique ou les responsabilités qui n'ont rien à voir avec le métier mais qui sont communément appelées par les modules métier, afin de réduire la duplication de code dans Le système et réduire le couplage entre les modules et faciliter l'opérabilité et la maintenabilité futures.
AOP représente une relation horizontale. Si "l'objet" est un cylindre creux, qui encapsule les propriétés et le comportement de l'objet ; alors la méthode de programmation orientée aspect est comme un couteau tranchant pour ouvrir ces cylindres creux. pour faire passer le message à l'intérieur. La section coupée est ce qu'on appelle « l'aspect ». Puis il a restauré ces sections coupées avec une habileté incroyable, sans laisser de trace.
Grâce à la technologie « transversale », AOP divise le système logiciel en deux parties : les préoccupations centrales et les préoccupations transversales. Le processus principal de traitement des affaires est la préoccupation centrale, et la partie qui a peu de rapport avec lui est la préoccupation transversale.
Une caractéristique des préoccupations transversales est qu’elles surviennent souvent à plusieurs endroits dans la préoccupation centrale et sont fondamentalement similaires partout. Tels que l'authentification des autorités, la journalisation et le traitement des transactions. Le rôle de l'Aop est de séparer les différentes préoccupations du système, en séparant les préoccupations centrales et les préoccupations transversales.
Comme l'a déclaré Adam Magee, architecte de solutions senior chez Avanade, l'idée centrale d'AOP est de "séparer la logique métier de l'application des services communs qui la prennent en charge".
3. Expliquez qu'est-ce que l'ioc ?IOC est l'abréviation de Inversion of Control, et la plupart des livres le traduisent par « Inversion of Control ».
En 1996, Michael Mattson a proposé pour la première fois le concept d'IOC dans un article sur l'exploration des frameworks orientés objet. Nous avons déjà beaucoup parlé des idées de base de la conception et de la programmation orientées objet, je n'entrerai donc pas dans les détails. En termes simples, cela signifie décomposer des systèmes complexes en objets coopérants. Une fois ces classes d'objets encapsulées, l'implémentation interne est effectuée. transparent vers l'extérieur, réduisant ainsi la complexité de la résolution des problèmes, et peut être réutilisé et étendu de manière flexible.
Le point avancé par la théorie IOC est à peu près le suivant : utiliser un "tiers" pour réaliser un découplage entre des objets ayant des dépendances. Comme indiqué ci-dessous :
Comme vous pouvez le constater, en raison de l'introduction du "tiers" au milieu, c'est-à-dire le conteneur IOC, les quatre A, B , C et D Les objets n'ont plus de relation de couplage et la transmission entre les engrenages repose entièrement sur le « tiers ». Les droits de contrôle de tous les objets sont confiés au conteneur IOC « tiers ».
Par conséquent, le conteneur IOC est devenu le noyau clé de l'ensemble du système. Il joue un rôle similaire à une "colle" qui lie tous les objets du système entre eux pour fonctionner sans cette "colle". les objets perdront contact les uns avec les autres, c'est pourquoi certains comparent le conteneur IOC à une « colle ».
Faisons une autre expérience : retirez le conteneur IOC au milieu de l'image ci-dessus, puis jetez un œil à ce système :
Ce que nous voyons maintenant L'écran est tout ce que nous devons compléter pour mettre en œuvre l'ensemble du système. À l’heure actuelle, les quatre objets A, B, C et D n’ont aucune relation de couplage et n’ont aucun lien les uns avec les autres.
Dans ce cas, lorsque vous implémentez A, vous n'avez plus besoin de considérer B, C et D, et les dépendances entre objets ont été réduites au minimum. Par conséquent, si les conteneurs IOC peuvent être réalisés, ce sera une chose merveilleuse pour le développement du système. Chaque membre participant au développement n'a qu'à implémenter sa propre classe et n'a rien à voir avec les autres !
4. Quels sont les principaux modules du printemps ?Le framework Spring a intégré jusqu'à présent plus de 20 modules. Ces modules sont principalement divisés en conteneurs de base, accès/intégration des données, Web, AOP (programmation orientée aspect), outils, messagerie et modules de test, comme le montre la figure ci-dessous.
Spring implémente l'IOC (Inversion of Control) via DI (Dependency Injection). Il existe trois méthodes d'injection principales :
- Injection de méthode de constructeur
- Injection Setter
- Injection basée sur les annotations
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.
