Maison Problème commun Quel est le principe et le processus du framework ssh

Quel est le principe et le processus du framework ssh

Sep 02, 2019 am 09:46 AM
ssh 原理 框架 流程

Quel est le principe et le processus du framework ssh

Principe de fonctionnement de Struts2 :

1. Initialisez une requête dans le conteneur de servlet.

2. La requête est filtrée par le filtre configuré dans web.xml, et le FilterDispatcher (le cœur du contrôleur struts2) demande à l'ActionMapper s'il doit appeler une action pour gérer la requête. Si ActionMapper décide qu'une action doit être appelée, FilterDispatcher transmet le traitement de la demande à ActionProxy.

3. ActionProxy trouve la classe Action qui doit être appelée via le fichier de configuration Struts.xml.

4.ActionProxy crée une instance ActionInvocation et ActionInvocation appelle Action via le mode proxy. Mais avant d'appeler, ActionInvocation chargera tous les intercepteurs (intercepteurs) liés à l'action en fonction de la configuration.

5. Une fois l'action exécutée, ActionInvocation est chargé de trouver le résultat de retour correspondant en fonction de la configuration dans struts.xml.

Recommandations associées : "FAQ"

C'est-à-dire que le développeur envoie une requête http, et cette requête est filtrée par le filtre web.xml pour voir si un certain action, s'il y en a une, recherchez la méthode implémentée par la requête dans Struts.xml, puis renvoyez le résultat en cours d'exécution. Comme le montre l'image :

Quel est le principe et le processus du framework ssh

Principe de fonctionnement d'Hibernate :

1. Lire et analyser le fichier de configuration

2. Lire et analyser les informations de mappage, créer SessionFactory

3. Session ouverte

4 Créer une opération de transaction

5. Soumettre la transaction

7. Fermer la session

8. Fermer SesstionFactory

Autrement dit, lorsque Hibernate géré par Spring est initialisé, xxx.hbm.xml est chargé, puis l'analyse est effectuée. les informations de mappage sont lues et créées.

Ensuite, ouvrez la session, faites fonctionner les choses tout au long de la session et soumettez-les. Enfin, fermez la session et fermez SessionFactory. Comme le montre l'image :

Quel est le principe et le processus du framework sshLes trois états des beans dans Hibernate

Les objets Hibernate sont divisés en trois états : état transitoire (nouvelle sortie) ou indépendant de la session lorsqu'il est instancié), état persistant (associé à la session) et état libre (auparavant associé à la session). Parmi eux, les objets persistants sont des PO, et les objets transitoires et gérés peuvent être utilisés comme VO. (PO ne doit pas être utilisé directement comme couche v) Par conséquent, il convient de prêter attention à la conversion de trois états pendant l'utilisation.

Par exemple :

Dans une série d'opérations de données, l'opération de sauvegarde ou de sauvegarde ou de mise à jour peut convertir des objets transitoires ou libres en objets persistants, tandis que

supprimer ou des opérations telles que fermer et le vidage de la session convertira l'objet d'état persistant associé à la session en un état libre.

L'état et le cycle de vie des objets Hibernate

L'objet initialisé à l'aide de l'opérateur new est un transitoire (Transient) (n'a aucun comportement associé à la table de la base de données ), tant que l'application ne référence plus ces objets, leur statut sera perdu et recyclé par le mécanisme de garbage collection) ;

Les objets transitoires passent save(), saveOrUpdate seront convertis en état persistant, et seront être géré uniformément par la session. Le fonctionnement des objets persistants est synchronisé avec la base de données

L'objet persistant sera converti en état libre après evict(), close(), clear(), etc. cette fois, bien qu'il soit persistant, il n'est pas dans le cache de session,

update(), saveOrUpdate sera converti en état persistant. Les objets obtenus via get(), load(), find() et iterate() sont directement persistants.

Comment fonctionne Spring :

Dans le framework SSH, spring joue le rôle de conteneur de gestion. Nous savons tous qu'Hibernate est utilisé comme couche de persistance, car il fournit une bonne encapsulation de JDBC

Les programmeurs n'ont pas besoin d'écrire un grand nombre d'instructions SQL lorsqu'ils interagissent avec la base de données. Struts est utilisé comme couche d'application, chargée d'appeler la couche de service de logique métier.

Le processus du framework SSH est donc grosso modo : Page Jsp ----Struts------Service (classe de traitement de logique métier) --- Hibernate (de gauche à droite)

struts Responsable du contrôle du Service (classe de traitement de logique métier), contrôlant ainsi le cycle de vie du Service De cette manière, la dépendance entre les couches est très forte et est couplée.

À l'heure actuelle, l'utilisation du framework Spring joue le rôle de contrôle de l'objet Action (dans Strus) et de la classe Service. La relation entre les deux est lâche. Le mécanisme Ioc de Spring (inversion du contrôle et injection de dépendances). est utilisé ici. Ioc de Spring (Inversion de contrôle et injection de dépendance) :

Inversion de contrôle : le conteneur contrôle la relation (de dépendance) entre les programmes, au lieu d'être directement contrôlé par le code du programme dans les implémentations traditionnelles.

Injection de dépendances : les dépendances entre les composants sont déterminées par le conteneur pendant l'exécution, et le conteneur injecte dynamiquement certaines dépendances dans les composants.

Le deuxième avantage de l'utilisation de Spring (application AOP) :

Traitement des transactions :

Dans le modèle JDBC précédent, la transaction a été soumise avec succès et exception Le traitement est effectué via Try/Catch in Spring.

Le conteneur Spring intègre TransactionTemplate, qui encapsule toutes les fonctions de traitement des transactions, y compris l'annulation des transactions lorsque des exceptions se produisent, la soumission de données lorsque les opérations réussissent et d'autres fonctions commerciales complexes. Tout cela est géré par le conteneur Spring, ce qui réduit considérablement la quantité de code pour les programmeurs et offre une bonne gestion et un bon contrôle des transactions.

Hibernate dispose également d'une gestion des transactions. La gestion des transactions en veille prolongée est complétée par la création et la maintenance d'une session via SessionFactory. Spring a également intégré la configuration SessionFactory, et il n'est pas nécessaire de définir SessionaFactory via hibernate.cfg.xml.

De cette façon, vous pouvez faire bon usage des puissantes fonctions de gestion des transactions de Sping.

Évite d'avoir besoin d'obtenir une instance de session pour démarrer une transaction/valider/annuler une transaction et des opérations Try/Catch fastidieuses à chaque fois que vous opérez sur des données.

Ce sont de bonnes applications du mécanisme AOP (programmation orientée aspect) de Spring. D’une part, cela rend le développement de la logique métier plus clair et la division professionnelle du travail plus facile.

D'autre part, l'application de l'isolation Spirng AOP réduit le couplage du programme, nous permettant de combiner divers aspects dans différentes applications, ce qui améliore considérablement la réutilisation du code.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment évaluer la rentabilité du support commercial des frameworks Java Comment évaluer la rentabilité du support commercial des frameworks Java Jun 05, 2024 pm 05:25 PM

L'évaluation du rapport coût/performance du support commercial pour un framework Java implique les étapes suivantes : Déterminer le niveau d'assurance requis et les garanties de l'accord de niveau de service (SLA). L’expérience et l’expertise de l’équipe d’appui à la recherche. Envisagez des services supplémentaires tels que les mises à niveau, le dépannage et l'optimisation des performances. Évaluez les coûts de support commercial par rapport à l’atténuation des risques et à une efficacité accrue.

Comment la courbe d'apprentissage des frameworks PHP se compare-t-elle à celle d'autres frameworks de langage ? Comment la courbe d'apprentissage des frameworks PHP se compare-t-elle à celle d'autres frameworks de langage ? Jun 06, 2024 pm 12:41 PM

La courbe d'apprentissage d'un framework PHP dépend de la maîtrise du langage, de la complexité du framework, de la qualité de la documentation et du support de la communauté. La courbe d'apprentissage des frameworks PHP est plus élevée par rapport aux frameworks Python et inférieure par rapport aux frameworks Ruby. Par rapport aux frameworks Java, les frameworks PHP ont une courbe d'apprentissage modérée mais un temps de démarrage plus court.

Comment les options légères des frameworks PHP affectent-elles les performances des applications ? Comment les options légères des frameworks PHP affectent-elles les performances des applications ? Jun 06, 2024 am 10:53 AM

Le framework PHP léger améliore les performances des applications grâce à une petite taille et une faible consommation de ressources. Ses fonctionnalités incluent : une petite taille, un démarrage rapide, une faible utilisation de la mémoire, une vitesse de réponse et un débit améliorés et une consommation de ressources réduite. Cas pratique : SlimFramework crée une API REST, seulement 500 Ko, une réactivité élevée et un débit élevé.

Principe de jalonnement Astar, démantèlement des revenus, projets et stratégies de largage aérien et stratégie opérationnelle au niveau de la nounou Principe de jalonnement Astar, démantèlement des revenus, projets et stratégies de largage aérien et stratégie opérationnelle au niveau de la nounou Jun 25, 2024 pm 07:09 PM

Table des matières Principe de jalonnement d'Astar Dapp Revenus de jalonnement Démantèlement des projets potentiels de largage aérien : AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Stratégie et fonctionnement du jalonnement "AstarDapp Staking" a été mis à niveau vers la version V3 au début de cette année, et de nombreux ajustements ont été apportés aux revenus de jalonnement règles. À l'heure actuelle, le premier cycle de jalonnement est terminé et le sous-cycle de « vote » du deuxième cycle de jalonnement vient de commencer. Pour bénéficier des avantages « récompense supplémentaire », vous devez franchir cette étape critique (qui devrait durer jusqu'au 26 juin, soit moins de 5 jours). Je vais détailler les revenus du staking Astar,

Comparaison des performances des frameworks Java Comparaison des performances des frameworks Java Jun 04, 2024 pm 03:56 PM

Selon les benchmarks, pour les petites applications hautes performances, Quarkus (démarrage rapide, mémoire faible) ou Micronaut (TechEmpower excellent) sont des choix idéaux. SpringBoot convient aux grandes applications full-stack, mais a des temps de démarrage et une utilisation de la mémoire légèrement plus lents.

Bonnes pratiques en matière de documentation du framework Golang Bonnes pratiques en matière de documentation du framework Golang Jun 04, 2024 pm 05:00 PM

La rédaction d'une documentation claire et complète est cruciale pour le framework Golang. Les meilleures pratiques incluent le respect d'un style de documentation établi, tel que le Go Coding Style Guide de Google. Utilisez une structure organisationnelle claire, comprenant des titres, des sous-titres et des listes, et fournissez la navigation. Fournit des informations complètes et précises, notamment des guides de démarrage, des références API et des concepts. Utilisez des exemples de code pour illustrer les concepts et l'utilisation. Maintenez la documentation à jour, suivez les modifications et documentez les nouvelles fonctionnalités. Fournir une assistance et des ressources communautaires telles que des problèmes et des forums GitHub. Créez des exemples pratiques, tels que la documentation API.

Comment choisir le meilleur framework Golang pour différents scénarios d'application Comment choisir le meilleur framework Golang pour différents scénarios d'application Jun 05, 2024 pm 04:05 PM

Choisissez le meilleur framework Go en fonction des scénarios d'application : tenez compte du type d'application, des fonctionnalités du langage, des exigences de performances et de l'écosystème. Frameworks Go courants : Gin (application Web), Echo (service Web), Fibre (haut débit), gorm (ORM), fasthttp (vitesse). Cas pratique : construction de l'API REST (Fiber) et interaction avec la base de données (gorm). Choisissez un framework : choisissez fasthttp pour les performances clés, Gin/Echo pour les applications Web flexibles et gorm pour l'interaction avec la base de données.

Explication pratique détaillée du développement du framework Golang : questions et réponses Explication pratique détaillée du développement du framework Golang : questions et réponses Jun 06, 2024 am 10:57 AM

Dans le développement du framework Go, les défis courants et leurs solutions sont les suivants : Gestion des erreurs : utilisez le package d'erreurs pour la gestion et utilisez un middleware pour gérer les erreurs de manière centralisée. Authentification et autorisation : intégrez des bibliothèques tierces et créez un middleware personnalisé pour vérifier les informations d'identification. Traitement simultané : utilisez des goroutines, des mutex et des canaux pour contrôler l'accès aux ressources. Tests unitaires : utilisez les packages, les simulations et les stubs gotest pour l'isolation, ainsi que les outils de couverture de code pour garantir la suffisance. Déploiement et surveillance : utilisez les conteneurs Docker pour regrouper les déploiements, configurer les sauvegardes de données et suivre les performances et les erreurs avec des outils de journalisation et de surveillance.