Table des matières
Infrastructure
Solutions pour données massives
Solution à haute concurrence
Protocoles et normes communs
Protocole TCP/IP
Paramètres DNS
Résolution DNS
Utilisation de Socket en Java
Utilisation de Socket ordinaire
Maison développement back-end tutoriel php Architecture du site Web et évolution de la pratique du code Spring MVC

Architecture du site Web et évolution de la pratique du code Spring MVC

Apr 02, 2018 am 10:03 AM
mvc spring 架构 网站

Cet article partage avec vous l'architecture du site Web et l'évolution de la pratique du code Spring MVC. Le contenu est assez bon. J'espère qu'il pourra aider les amis dans le besoin

Architecture du site Web. et son évolution

Infrastructure

Méthode de décomposition de la transmission réseau :

  • Modèle de référence OSI standard

  • Modèle de référence TCP/IP

Architecture du site Web et évolution de la pratique du code Spring MVC

Solutions pour données massives

  • Mise en cache et statique de pages

  • Cache

    • Enregistrer directement en mémoire via le programme

    • Utiliser des frameworks de mise en cache (Encache, Redis, Memcache)

  • Page statique

    • Généré à l'aide de la technologie de modèles (Velocity, FreeMaker, etc.)

  • Optimisation de la base de données

  • Optimisation de la structure des tables

  • Optimisation des instructions SQL

  • Partition

  • Table

  • Optimisation de l'index

  • Utilisez des procédures stockées au lieu de procédures de manipulation directe

  • Séparez les données actives

  • Lecture batch et modification différée

  • Séparation de la lecture et de l'écriture

    Architecture du site Web et évolution de la pratique du code Spring MVC

  • Base de données distribuée

    Architecture du site Web et évolution de la pratique du code Spring MVC

  • NoSQL et Hadoop


Solution à haute concurrence

  • Séparation des applications et des ressources statiques : fichiers statiques ( Images , vidéos, JS, CSS, etc.) sont placés sur un serveur dédié

  • Mise en cache des pages (serveur Nginx, serveur Squid)

  • Clustering et distribution

  • Proxy inverse

  • CDN

  • Optimisation sous-jacente : Protocole de transmission réseau

Protocoles et normes communs

Protocole TCP/IP

IP : Adresse de recherche, correspondant à l'Internet international

TCP : Spécification Règles de transmission, correspondant à la couche de transmission

TCP communiquera trois fois avant la transmission, ce que l'on appelle « poignée de main à trois voies ». Après la transmission des données, il communiquera quatre fois lorsqu'il est déconnecté, ce que l'on appelle « quatre vagues ».

TCP a deux numéros de séquence et trois bits de drapeau signifiant :

  • seq : Indique le numéro de séquence des données transmises. Chaque octet lors de la transmission TCP a un numéro de séquence. Lors de l'envoi de données, le premier numéro de séquence des données sera envoyé à l'autre partie. Le récepteur vérifiera si la réception est terminée en fonction du numéro de séquence. , il doit être retransmis. De cette façon, l’intégrité des données peut être garantie.

  • ack : Indique le numéro de confirmation. L'extrémité réceptrice l'utilise pour renvoyer à l'extrémité émettrice les informations de données qui ont été reçues avec succès. Sa valeur est le numéro de séquence de départ du prochain paquet de données qu'il espère recevoir.

  • ACK : Bit d'accusé de réception, ack ne fonctionne que lorsque ACK = 1. Lors d'une communication normale, l'ACK est 1. Lorsque la demande est lancée pour la première fois, l'ACK est 0 car aucune donnée n'a besoin d'être confirmée.

  • SYN : Bit de synchronisation, utilisé pour synchroniser le numéro de séquence lors de l'établissement d'une connexion. Lorsque la connexion est établie pour la première fois, il n'y a pas d'historique des données reçues, il n'y a donc aucun moyen de définir un accusé de réception. Cela ne fonctionnera pas selon le mécanisme normal. Le rôle de SYN est de résoudre ce problème lorsque l'extrémité réceptrice reçoit le. SYN = 1 rapport Lors de l'écriture, l'accusé de réception sera directement défini sur la valeur de la séquence reçue + 1. Notez que la valeur ici n'est pas définie après vérification, mais est définie directement selon SYN, afin que le mécanisme normal puisse fonctionner, donc SYN est appelé bit de synchronisation. SYN sera égal à 1 lors des deux premières poignées de main, car l'acquittement des deux parties dans la communication doit définir une valeur initiale.

  • FIN : Bit de terminaison, utilisé pour libérer la connexion une fois la transmission des données terminée.

Architecture du site Web et évolution de la pratique du code Spring MVC


Paramètres DNS

Résolution DNS

Référez-vous aux paramètres du nom de domaine, voici mes paramètres sur le nom de domaine Tencent Cloud

Architecture du site Web et évolution de la pratique du code Spring MVC

Type d'enregistrement :

Un enregistrement : Pointez le nom de domaine vers une adresse IPv4 (ex. : 8.8.8.8)

CNAME : Pointez le nom de domaine vers un autre nom de domaine ( par exemple www.54tianzhisheng .cn)

MX : Pointez le nom de domaine vers l'adresse du serveur de messagerie

TXT : Peut être renseigné arbitrairement, la longueur est limitée à 255, généralement des enregistrements SPF (Anti-spam)

NS : enregistrement du serveur de noms de domaine, spécifiez le nom du sous-domaine aux autres serveurs DNS pour résolution

AAAA : Pointez le nom de domaine vers une adresse iPv6 (Exemple : ff06:0:0:0:0:0:0:c3)

SRV : Enregistrer le serveur qui fournit un service spécifique (par exemple xmpp-server.tcp)

URL explicite : Rediriger le nom de domaine 301 vers une autre adresse

URL implicite : similaire à une URL explicite, mais masquera la véritable adresse cible

Enregistrement de l'hôte :

Pour résoudre www.54tianzhisheng.cn, veuillez remplir www. . L'enregistrement d'hôte est le préfixe du nom de domaine. Les usages courants sont :

www : *Le nom de domaine résolu est www.54tianzhisheng.cn.

*@: Résout directement le nom de domaine principal 54tianzhisheng.cn.

* : Pan-analytique, correspondant à tous les autres noms de domaine *.54tianzhisheng.cn.

mail : résout le nom de domaine en mail.54tianzhisheng.cn, qui est généralement utilisé pour résoudre le serveur de boîte aux lettres.

Nom de domaine de deuxième niveau : Par exemple : abc.54tianzhisheng.cn, remplissez abc.

Site Web mobile : Par exemple : m.54tianzhisheng.cn, remplissez m.


Utilisation de Socket en Java

Utilisation de Socket ordinaire

Socket est divisé en deux catégories : ServerSocket et Socket.

ServerSocket est utilisé côté serveur. Il peut écouter les requêtes via la méthode d'acceptation et renvoie le Socket après avoir écouté la requête

Les utilisateurs de Socket terminent spécifiquement la transmission des données et le client ; utilise directement Socket pour envoyer des requêtes et transmettre des données.

Je viens d'écrire une démo pour envoyer des messages unilatéralement :

Client :

  1. <span style="color:rgb(199,146,234);line-height:20px;font-size:13px !important;white-space: !important;">import</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;"> java</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;">io</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(126,165,247);line-height:20px;font-size:13px !important;white-space: !important;">IOException</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">;</span>

  2. <span style="color:rgb(199,146,234);line-height:20px;font-size:13px !important;white-space: !important;">import</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;"> java</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;">io</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(126,165,247);line-height:20px;font-size:13px !important;white-space: !important;">OutputStream</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">;</span>

  3. <span style="color:rgb(199,146,234);line-height:20px; font-size:13px !important;white-space: !important;">import<code style="margin-left:-20px;line-height:12px;border-width:0px;font-size:10px;font-family:inherit !important;"><span style="color:rgb(199,146,234);line-height:20px;font-size:13px !important;white-space: !important;">import</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;"> java</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;">net</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(126,165,247);line-height:20px;font-size:13px !important;white-space: !important;">Socket</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">;</span> java.net

    .
  4. Socket
  5. ;

  6. <span style="color:rgb(79,103,117);line-height:20px;font-size:13px !important;white-space: !important;">/**</span>

  7. <span style="color:rgb(79,103,117);line-height:20px;font-size:13px !important;white-space: !important;">/**<p style="min-height:1em;"></p></span><span style="color:rgb(79,103,117);line-height:20px;font-size:13px !important;white-space: !important;"> * Created by 10412 on 2017/5/2.</span>
  8. <span style="color:rgb(79,103,117);line-height:20px;font-size:13px !important;white-space: !important;"> * Créé par 10412 en 2017 /5/2.<p style="min-height:1em;"></p></span><span style="color:rgb(79,103,117);line-height:20px;font-size:13px !important;white-space: !important;"> * TCP客户端:</span>
  9. <span style="color:rgb(79,103,117);line-height:20px;font-size:13px ! important;white-space: !important;"> * TCP客户端:<p style="min-height:1em;"></p></span><span style="color:rgb(79,103,117);line-height:20px;font-size:13px !important;white-space: !important;"> ①:建立tcp的socket服务,最好明确具体的地址和端口。这个对象在创建时,就已经可以对指定ip和端口进行连接(三次握手)。</span>
  10. <span style="color:rgb(79,103,117);line-height:20px;font-size:13px !important;white-space: !important;"> ②:如果连接成功,就意味着通道建立了,socket流就已经产生了。只要获取到socket流中的读取流和写入流即可,只要通过getInputStream和getOutputStream就可以获取两个流对象。</span>

  11. <span style="color:rgb(79,103,117);line-height:20px; font-size:13px !important;white-space: !important;"> ③:关闭资源。<code style="margin-left:-20px;line-height:12px;border-width:0px;font-size:10px;font-family:inherit !important;"><span style="color:rgb(79,103,117);line-height:20px;font-size:13px !important;white-space: !important;"> ③:关闭资源。</span>

  12. */
    //单方面的输入!
    public class TcpClient
    {
        public static void main(String[] args) {
            try {
                Socket s = new Socket("127.0.0.1", 9999);
                OutputStream o = s.getOutputStream();
                o.write("tcp sssss".getBytes());
                s.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    Copier après la connexion

服务器端:

  1. import<span style="color:rgb(199,146,234);line-height:20px;font-size:13px !important;white-space: !important;">import</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;"> java</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;">io</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(126,165,247);line-height:20px;font-size:13px !important;white-space: !important;">IOException</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">;</span> java.io

    .
  2. IOException
  3. ;

    <span style="color:rgb(199,146,234);line-height:20px;font-size:13px !important;white-space: !important;">import</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;"> java</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;">io</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(126,165,247);line-height:20px;font-size:13px !important;white-space: !important;">InputStream</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">;</span>

  4. <span style="color:rgb(199,146,234);line-height:20px;font-size:13px !important;white-space: !important;">import<p style="min-height:1em;"><span style ="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;"> java<span style="color:rgb(74,74,74);display:block;line-height:22px;font-size:14px !important;"><span style="color:rgb(204,204,204);line- hauteur:20px;font-size:13px !important;white-space: !important;">.<span style="line-height:22px;display:block;"><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important ;white-space: !important;">io<code style="margin-left:-20px;line-height:12px;border-width:0px;font-size:10px;font-family:inherit !important;"><span style="color:rgb(199,146,234);line-height:20px;font-size:13px !important;white-space: !important;">import</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;"> java</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;">net</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(126,165,247);line-height:20px;font-size:13px !important;white-space: !important;">ServerSocket</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">;</span>. InputStream;

    <🎜><🎜><🎜><🎜><🎜> <🎜><🎜><🎜>< span style="color:rgb(199,146,234);line-height:20px;font-size:13px !important;white-space: !important;">import<🎜><span style="color:rgb(238,255,255); hauteur de ligne:20px;taille de police:13px !important;espace blanc: !important;"> java<🎜><span style="color:rgb(204,204,204);hauteur de ligne:20px;font-size:13px !important;espace blanc : !important;">.<🎜><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;" >net<🎜><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.<🎜><span style="color :rgb(126,165,247);line-height:20px;font-size:13px !important;white-space: !important;">ServerSocket<🎜><span style="color:rgb(204,204,204);line-height:20px ;font-size:13px !important;espace blanc: !important;">;<🎜><🎜><🎜><🎜>
  5. <span style="color:rgb(199,146,234);line-height:20px;font-size:13px !important;white-space: !important;">import</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;"> java</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(238,255,255);line-height:20px;font-size:13px !important;white-space: !important;">net</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">.</span><span style="color:rgb(126,165,247);line-height:20px;font-size:13px !important;white-space: !important;">Socket</span><span style="color:rgb(204,204,204);line-height:20px;font-size:13px !important;white-space: !important;">;</span>

  6. /**
     * Created by 10412 on 2017/5/2.
     */
    public class TcpServer
    {
        public static void main(String[] args) {
            try {
                ServerSocket ss = new ServerSocket(9999);//建立服务端的socket服务
                Socket s = ss.accept();//获取客户端对象
                String ip = s.getInetAddress().getHostAddress();
                int port = s.getPort();
                System.out.println(ip + " : " + port + " connected");
                // 可以通过获取到的socket对象中的socket流和具体的客户端进行通讯。
                InputStream ins = s.getInputStream();//读取客户端的数据,使用客户端对象的socket读取流
                byte[] bytes = new byte[1024];
                int len = ins.read(bytes);
                String text = new String(bytes, 0, len);
                System.out.println(text);
                //关闭资源
                s.close();
                ss.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    Copier après la connexion

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)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines 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)

Un nouveau paradigme de programmation, quand Spring Boot rencontre OpenAI Un nouveau paradigme de programmation, quand Spring Boot rencontre OpenAI Feb 01, 2024 pm 09:18 PM

En 2023, la technologie de l’IA est devenue un sujet brûlant et a un impact énorme sur diverses industries, notamment dans le domaine de la programmation. Les gens sont de plus en plus conscients de l’importance de la technologie de l’IA, et la communauté Spring ne fait pas exception. Avec l’évolution continue de la technologie GenAI (Intelligence Artificielle Générale), il est devenu crucial et urgent de simplifier la création d’applications dotées de fonctions d’IA. Dans ce contexte, « SpringAI » a émergé, visant à simplifier le processus de développement d'applications fonctionnelles d'IA, en le rendant simple et intuitif et en évitant une complexité inutile. Grâce à « SpringAI », les développeurs peuvent plus facilement créer des applications dotées de fonctions d'IA, ce qui les rend plus faciles à utiliser et à exploiter.

Existe-t-il un site Web pour apprendre le langage C ? Existe-t-il un site Web pour apprendre le langage C ? Jan 30, 2024 pm 02:38 PM

Sites Web pour apprendre le langage C : 1. Site Web du langage C ; 2. Tutoriel pour les débutants ; 3. Forum du langage C ; 5. Script House 6. Tianji.com ; 51 Réseau d'auto-apprentissage ; 9. Likou ; 10. Programmation C. Introduction détaillée : 1. Site Web chinois en langue C, qui est un site Web dédié à la fourniture de matériel d'apprentissage du langage C pour les débutants. Il a un contenu riche, comprenant une grammaire de base, des pointeurs, des tableaux, des fonctions, des structures et d'autres modules. est un site Web complet d'apprentissage de la programmation et bien plus encore.

Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Utilisez Spring Boot et Spring AI pour créer des applications d'intelligence artificielle générative Apr 28, 2024 am 11:46 AM

En tant que leader du secteur, Spring+AI fournit des solutions de pointe pour divers secteurs grâce à son API puissante et flexible et ses fonctions avancées. Dans cette rubrique, nous examinerons les exemples d'application de Spring+AI dans divers domaines. Chaque cas montrera comment Spring+AI répond à des besoins spécifiques, atteint ses objectifs et étend ces LEÇONS APPRISES à une gamme plus large d'applications. J'espère que ce sujet pourra vous inciter à comprendre et à utiliser plus profondément les possibilités infinies de Spring+AI. Le framework Spring a une histoire de plus de 20 ans dans le domaine du développement logiciel, et cela fait 10 ans que la version Spring Boot 1.0 est sortie. Maintenant, personne ne peut contester ce printemps

Quelle est l'architecture et le principe de fonctionnement de Spring Data JPA ? Quelle est l'architecture et le principe de fonctionnement de Spring Data JPA ? Apr 17, 2024 pm 02:48 PM

SpringDataJPA est basé sur l'architecture JPA et interagit avec la base de données via le mappage, l'ORM et la gestion des transactions. Son référentiel fournit des opérations CRUD et les requêtes dérivées simplifient l'accès à la base de données. De plus, il utilise le chargement paresseux pour récupérer les données uniquement lorsque cela est nécessaire, améliorant ainsi les performances.

1,3 ms prend 1,3 ms ! La dernière architecture de réseau neuronal mobile open source de Tsinghua, RepViT 1,3 ms prend 1,3 ms ! La dernière architecture de réseau neuronal mobile open source de Tsinghua, RepViT Mar 11, 2024 pm 12:07 PM

Adresse papier : https://arxiv.org/abs/2307.09283 Adresse code : https://github.com/THU-MIG/RepViTRepViT fonctionne bien dans l'architecture ViT mobile et présente des avantages significatifs. Ensuite, nous explorons les contributions de cette étude. Il est mentionné dans l'article que les ViT légers fonctionnent généralement mieux que les CNN légers sur les tâches visuelles, principalement en raison de leur module d'auto-attention multi-têtes (MSHA) qui permet au modèle d'apprendre des représentations globales. Cependant, les différences architecturales entre les ViT légers et les CNN légers n'ont pas été entièrement étudiées. Dans cette étude, les auteurs ont intégré des ViT légers dans le système efficace.

Quelle est la courbe d'apprentissage de l'architecture du framework Golang ? Quelle est la courbe d'apprentissage de l'architecture du framework Golang ? Jun 05, 2024 pm 06:59 PM

La courbe d'apprentissage de l'architecture du framework Go dépend de la familiarité avec le langage Go et le développement back-end ainsi que de la complexité du framework choisi : une bonne compréhension des bases du langage Go. Il est utile d’avoir une expérience en développement back-end. Les cadres qui diffèrent en complexité entraînent des différences dans les courbes d'apprentissage.

Architecture PHP MVC : créer des applications Web pour le futur Architecture PHP MVC : créer des applications Web pour le futur Mar 03, 2024 am 09:01 AM

Introduction Dans le monde numérique en évolution rapide d'aujourd'hui, il est crucial de créer des applications WEB robustes, flexibles et maintenables. L'architecture PHPmvc fournit une solution idéale pour atteindre cet objectif. MVC (Model-View-Controller) est un modèle de conception largement utilisé qui sépare les différents aspects d'une application en composants indépendants. Les fondements de l'architecture MVC Le principe fondamental de l'architecture MVC est la séparation des préoccupations : Modèle : encapsule les données et la logique métier de l'application. Vue : responsable de la présentation des données et de la gestion des interactions des utilisateurs. Contrôleur : coordonne l'interaction entre les modèles et les vues, gère les demandes des utilisateurs et la logique métier. Architecture PHPMVC L'architecture phpMVC suit le modèle MVC traditionnel mais introduit également des fonctionnalités spécifiques au langage. Ce qui suit est PHPMVC

Comment définir le niveau d'isolement des transactions au printemps Comment définir le niveau d'isolement des transactions au printemps Jan 26, 2024 pm 05:38 PM

Comment définir le niveau d'isolement des transactions dans Spring : 1. Utilisez l'annotation @Transactional ; 2. Définissez-le dans le fichier de configuration Spring ; 3. Utilisez PlatformTransactionManager ; Introduction détaillée : 1. Utilisez l'annotation @Transactional, ajoutez l'annotation @Transactional à la classe ou à la méthode qui nécessite la gestion des transactions et définissez le niveau d'isolement dans l'attribut 2. Dans le fichier de configuration Spring, etc.

See all articles