2011-07-19 5 views
0

Lors de la configuration de la transaction Spring via xml, est-il bon de lier des interfaces ou des classes concrètes pour la transaction? Je pensais que nous devions avoir des interfaces mappées pour la gestion des transactions , mais je l'ai trouvé à partir de la documentation de Spring: "La recommandation de l'équipe de printemps est que vous annotez uniquement les classes concrètes avec l'annotation @Transactional".Configuration de la transaction Spring

S'il vous plaît partagez votre opinion.

Répondre

3

Les limites de transaction sont des détails d'implémentation, elles doivent donc être spécifiées par implémentation plutôt que par interface. Par exemple, imaginez que dans certains cas complexes, vous ayez besoin d'utiliser la gestion de transaction par programme (TransactionTemplate) plutôt que @Transactional pour l'une de vos méthodes. Si vous avez @Transactional au niveau de l'interface, ce ne sera pas possible.

+0

Désolé que je suis entré dans @Transactional dans ma question. En fait, c'est une partie que j'ai extraite de la documentation de printemps. Ma question concerne la déclaration de transaction via xml. De cette façon, devrais-je lier des interfaces ou des classes d'implémentation? – popcoder

+0

@ user495939: Ce raisonnement reste également vrai pour xml. – axtavt

2

Les interfaces sont des contrats. La transactionnalité ne fait pas (généralement) partie d'un contrat. C'est un détail d'implémentation. Par conséquent, @Transactional appartient à la classe d'implémentation, pas à l'interface.

+0

Disons que nous n'utiliser des annotations, et seulement déclarer les transactions en travers xml. Dans ce cas, nous pouvons avoir droit à la fois des proxy d'interface et de classe? quel est le meilleur? C'est mon inquiétude. – popcoder

+0

@ user495939: Comme dit axtavt, le même raisonnement peut être appliqué aux transactions déclarées XML. Au lieu de classes et d'interfaces, vous avez des beans et des types. Vous pouvez considérer que les mêmes règles s'appliquent à peu près. –

Questions connexes