Maison > Java > javaDidacticiel > L'annotation @Transactional de Spring fonctionne-t-elle sur les méthodes privées ?

L'annotation @Transactional de Spring fonctionne-t-elle sur les méthodes privées ?

Barbara Streisand
Libérer: 2024-12-25 14:09:11
original
289 Les gens l'ont consulté

Does Spring's @Transactional Annotation Work on Private Methods?

Efficacité des attributs transactionnels sur les méthodes privées au printemps

Au sein de Spring, l'annotation @Transactional permet de délimiter les limites transactionnelles des méthodes. Une question courante se pose concernant l'efficacité de cette annotation lorsqu'elle est appliquée aux méthodes privées dans les beans Spring.

La réponse est simple : @Transactional n'a aucun effet sur les méthodes privées. Cela est dû au fait que le générateur de proxy utilisé par Spring ignore les méthodes privées.

Pour clarifier davantage, considérons l'exemple suivant :

public class Bean {
  public void doStuff() {
     doPrivateStuff();
  }
  @Transactional
  private void doPrivateStuff() {

  }
}
Copier après la connexion

Malgré l'annotation @Transactional sur la méthode privée doPrivateStuff() , il reste inefficace et ne modifie pas le comportement transactionnel. Ce comportement est documenté dans le chapitre 10.5.6 du manuel Spring, qui indique explicitement :

"Lors de l'utilisation de proxys, vous devez appliquer l'annotation @Transactional uniquement aux méthodes avec une visibilité publique. Si vous annotez des méthodes protégées, privées ou des méthodes visibles par le package avec l'annotation @Transactional, aucune erreur n'est générée, mais la méthode annotée ne présente pas les paramètres transactionnels configurés. Envisagez l'utilisation d'AspectJ... si vous devez annoter. méthodes non publiques."

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal