Frontier: Avec une étude plus approfondie de la gestion des transactions Spring, cet article ne fera pas d'exemples, mais spécifiez des classes spécifiques et des fichiers de configuration pour l'explication.
Contenu de cet article:
1. Comprendre ce qu'est une transaction déclarative?
2. Quelle est la gestion des transactions déclaratives?
3. Quelle est la différence entre ces types de gestion des transactions?
1. Qu'est-ce qu'une transaction déclarative?
La gestion des transactions déclaratives est l'une des façons de gérer les transactions du programme fournies par Spring. Les transactions déclaratives de Spring utilisent la méthode déclarative pour gérer les transactions et utilisent le traitement déclaratif des transactions dans les fichiers de configuration de Spring pour remplacer le traitement basé sur le code des transactions. L'avantage de cela est que la gestion des transactions n'envahit pas les composants de développement. Plus précisément, l'objet Business Logic ne se rendra pas compte qu'il est dans la gestion des transactions. En fait, la même chose devrait être vraie, car la gestion des transactions est un service au niveau du système, pas une partie de la logique métier. Si vous souhaitez modifier la gestion des transactions, il vous suffit de modifier la configuration dans le fichier de configuration défini. Lorsqu'aucune gestion des transactions n'est nécessaire, modifiez-la simplement sur le fichier de configuration et supprimez le service de gestion des transactions sans modifier le code et le recompiler, ce qui est extrêmement pratique à maintenir.
2. Méthode de gestion des transactions déclaratives.
Tout d'abord, jetons un coup d'œil à la gestion des transactions originale avant de pouvoir parler de la méthode de gestion des transactions déclaratives.
Comme on peut le voir à partir de la figure ci-dessus, nous devons d'abord créer une nouvelle session.OpenSession (), deuxièmement, nous devons créer et engager des transactions via la méthode getTransaction (). Begin () de la session et GetTransaction (). Commit () Méthode, et nous devons fermer session.close (). De cette façon, chaque fois que nous appelons cette méthode, nous recréerons une nouvelle session et ferons la même chose à plusieurs reprises, ce qui n'est pas conforme à notre idée de conception d'ingénierie logicielle. Ensuite, nous utilisons la gestion des transactions déclaratives pour simplifier et ajuster le code.
1. Utilisez la gestion des transactions déclaratives de Springaop.
1.1. Nous devons importer plusieurs packages d'AOP:
1.2. Effectuez ensuite la configuration des transactions dans le fichier de configuration application.xml:
1.3. Modifiez la méthode d'interrogation toutes les données:
Après l'explication ci-dessus, nous pouvons voir la modification de la méthode ShowAllNews (). Tout d'abord, nous modifions la méthode OpenSession () originale pour getCurrentession () (Remarque: La capture d'écran a des commentaires pour illustrer leurs différences, donc je ne les répéterai pas). Il n'est pas nécessaire de créer et d'organiser manuellement des transactions. Notre Springaop gérera automatiquement les transactions et fermera automatiquement la session.
2. Utilisez la méthode d'annotation @transactionnelle.
2.1. Tout d'abord, nous devons effectuer la configuration des transactions dans le fichier de configuration application.xml (notifier le conteneur de ressort pour gérer le traitement du bean d'Annotation @Transactional):
2.2. Ensuite, il n'est pas nécessaire de faire des opérations ou des modifications dans NewsDaoimpl:
2.3. Ajoutez des annotations à NewsServiceImpl.
Ici, nous pouvons ajouter une annotation @transactionnelle à la classe (ce qui signifie que toutes les méthodes sont ajoutées à la gestion des transactions), ou ajouter Annotation @Transactional à la méthode spécifique. S'il s'agit d'une méthode qui ne nécessite pas de modification des données, ajoutez un attribut.
Par exemple: Méthode pour interroger toutes les données @Transactional (readonly = true)
3. La différence entre la gestion des transactions déclaratives configurée à l'aide de Springaop et @Transactional Annotation:
1) La gestion des transactions déclaratives de configuration Springaop a un faible couplage, une faible lisibilité, une expression détaillée et une forte flexibilité.
2) L'annotation @transactionnelle a une forte lisibilité, et le contenu est dispersé et non propice à la gestion et à la maintenance unifiés, et a un couplage élevé.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.