Maison Java javaDidacticiel Quel est le principe et le processus du framework ssh

Quel est le principe et le processus du framework ssh

Jul 25, 2019 pm 02:41 PM
java ssh框架 原理 流程

Quel est le principe et le processus du framework ssh

Projet de framework SSH (Struts2+Spring+Hibernate), l'architecture est principalement divisée en trois niveaux :

(1) Struts2 : responsable de la couche web

(2) Spring : gestion de la couche métier

(3) Hibernate : responsable de la persistance des données

Principe de fonctionnement de Struts2 :

1. Initialisez une requête pointant vers 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 des demandes à 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.

C'est-à-dire que le développeur envoie une requête http. Cette requête est filtrée par le filtre de web.xml pour voir si une action doit être appelée. Si tel est le cas, la méthode pour implémenter la requête se trouve dans Struts. .xml, puis renvoyé Le résultat de l'opération.

Recommandations associées : "Tutoriel de développement Java"

Principe de fonctionnement d'Hibernate :

Lire et analyser le fichier de configuration.

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

3. Session ouverte

4. Créer une transaction de transaction

5.

6. Soumettre la transaction

7. Fermer la session

8. Fermer SessionFactory

C'est-à-dire que xxx.hbm.xml est chargé lors de l'initialisation Hibernate gérée par Spring. lisez les informations de mappage d’analyse et créez une SessionFactory. Ensuite, ouvrez la session, faites fonctionner l'objet tout au long de la session et soumettez-le. Enfin, fermez la session et fermez SessionFactory.

Trois états des beans dans Hibernate

Les objets Hibernate sont divisés en trois états : l'état transitoire (nouveau ou indépendant de la session lorsqu'il est instancié), l'état persistant (associé à la session) et l'état libre (une fois associé à la séance). 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 des 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 la suppression ou la fermeture de session, le vidage et d'autres opérations 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) (il n'y a pas de comportement associé à la table de la base de données, tant que l'application ne n'y fait plus référence) Le statut de ces objets sera perdu et recyclé par le mécanisme de garbage collection ;

Les objets transitoires seront convertis en objets persistants via save() et saveOrUpdate, qui seront gérés uniformément par le session. Les opérations des objets persistants sont les mêmes que pour la synchronisation de la base de données ;

L'objet persistant sera converti en état libre après evict(), close(), clear(), etc. il est persistant, il n'est pas dans le cache de session. Grâce à lock(), 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 et 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, qui est 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 façon, 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.

Inversion de contrôle : le conteneur contrôle la relation (de dépendance) entre les programmes, au lieu de l'implémentation traditionnelle, qui est directement contrôlée par le code du programme.

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 la gestion des exceptions a été effectuée via Try/Catch. 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 réalisée en créant et en maintenant 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.

Cela évite d'avoir besoin d'obtenir une instance de session pour démarrer la transaction/soumettre/annuler la transaction et l'opération fastidieuse Try/Catch à chaque fois que les données sont exploité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 grandement 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.

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)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

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.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

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.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

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

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

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.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

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

Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo

See all articles