70 votes

Le printemps des annotations @Référentiel et @Service

Quels sont les avantages de l'utilisation de @Référentiel et @Service?

Ne me dites pas que sur la composante de la numérisation, etc., Je suis impatient de quelque chose en plus des avantages ou des caractéristiques qui sont là.

qu'advient-il si je ne l'utilise pas? qu'est ce que je serait absent?

72voto

Donal Fellows Points 56559

Il ya quelques raisons:

  1. Il est plus facile de cibler les pointcuts avec plus des annotations spécifiques. Ne pas sous-estimer l'utilité de ce!
  2. L' @Repository d'annotation porte avec elle une partie des fonctionnalités supplémentaires: il provoque des exceptions à être enveloppé comme DataAccessExceptions.
  3. L' @Service d'annotation peuvent obtenir davantage de la sémantique dans l'avenir , mais il n'est pas encore arrivé...

65voto

Luciano Fiandesio Points 4795

L' @Repository d'annotation (présenté au Printemps 2.0) et @Service d'annotation (présenté au Printemps 2.5) sont spécialisation de l' @Component d'annotation.

Le principal avantage de l'utilisation d' @Repository ou @Service sur @Component , c'est qu'il est facile d'écrire un AOP en coupe transverse (pointcut) que les cibles, par exemple, toutes les classes annotées avec @Repository.

Aussi, le service spécialisé annotations aider à délimiter clairement les niveaux d'application (en standard de 3 niveaux d'application).

5voto

nicholas.hauschild Points 21796

Je crois qu'il y a deux choses que le Printemps venait à l'esprit quand ils ont ajouté ces annotations.

  1. Ils peuvent être utilisés pour spécifier le point de coupe à travers tous les objets annotés à cette sous-composante. (Tous @Référentiel ou tous @Service pointcuts)
  2. Je pense que le Printemps a également mentionné qu'ils seraient en ajoutant quelques fonctionnalités à venir. (Je n'ai pas de citation pour cela, je pense juste que j'ai lu cela quelque part)

3voto

lrkwz Points 1536

Si vous TDD , il serait utile de soigneusement conception (un test de cours) @Services, car ils bénéficieront de plein injection de tous les @Autocâblés les composants que vous avez défini.

Vous pouvez implémenter vos fonctionnalités directement dans un @Contrôleur par exemple, mais dans ce cas, les tests seront plus difficiles et vous avez besoin de définir l'ensemble de la maquette éléments (assez facile dans springframework 3.1 mais toujours "mauvais").

2voto

Mayur Gupta Points 165

L'utilisation d' @Repository et @Service annotations sont importantes à partir de la connexion à la base de la perspective.

Utiliser @Service pour l'ensemble de votre service web de type de DB connections Utiliser @Repository pour l'ensemble de vos procédures stockées DB connections Si vous n'utilisez pas le bon annotations, vous pouvez faire face à commettre des exceptions remplacée par la restauration des transactions. Vous verrez des exceptions lors d'un stress test de charge qui est lié à revenir sur les transactions JDBC.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X