Avantages de l'utilisation de ressort de stéréotypes?
Je développe une application web à l'aide de spring-mvc.
Maintenant l' @Contrôleur, @Service et @Référentiel stéréotypes sont disponibles.
J'ai trouvé @Contrôleur de réellement utile, spécialement parce que je suis en utilisant
<context:component-scan base-package="my.cool.controller"/>
Maintenant, concernant @Service et @Référentiel, ressemble tellement loin de
- Les exceptions sont mieux traités si la classe est annotée avec le bon stéréotype, ok, c'est un avantage que je acknowlegde
- Je pourrais utiliser component-scan pour les services et les DAOs/dépôts, cependant je n'aime pas l'idée d'utiliser le composant d'analyse, car elle ralentit le temps de démarrage de l'application, et qui est un élément clé pour moi (même si c'est seulement 1 seconde et je redéployer une fois par semaine)
Si, en dehors de la meilleure des exceptions, tout autre avantage à tous? Ne annoter les classes ont un impact sur les performances?
- Regarde ce stackoverflow.com/questions/5645864/...
Vous devez vous connecter pour publier un commentaire.
Explication des stéréotypes :
@Service
- Annoter tous vos classes de service avec @Service. Cette couche sait que l'unité de travail. Tous votre logique métier dans les classes de Service. Généralement, les méthodes de la couche de service sont couverts en vertu de la transaction. Vous pouvez faire plusieurs DAO des appels à partir de la méthode de service, si une transaction échoue, toutes les transactions de restauration.@Repository
- Annoter tous vos classes DAO avec @Référentiel. Tous vos accès à la base de la logique devrait être dans les classes DAO.@Component
- D'annoter vos autres composants (par exemple, RESTE la ressource de classes) avec le composant stéréotype.@Autowired
- Laissez-le Printemps de l'auto-fil autres haricots dans vos classes à l'aide de @Autocâblés annotation.@Component
est un générique de stéréotype pour n'importe quel Printemps-composant managé.@Repository
,@Service
, et@Controller
sont des spécialisations de la@Component
pour plus des cas d'utilisation spécifiques, par exemple, dans la persistance, le service et la présentation des couches, respectivement.Raisons de les utiliser :
bean
définitions dans le contexte fichier xml. Au lieu d'annoter les classes et les utiliser par permettra à l'autowiring.Maintenant, Pratiquement impact sur les performances de l'utilisation d'un contexte xml haricots & annotations est le même. Composant de balayage est un peu plus cher (lors de la numérisation pour @Service, @Composant). Les annotations sont des "analysé" avec la réflexion, le xml avec un analyseur xml. Mais, comme vous l'avez dit, c'est le démarrage-temps, il arrive qu'une seule fois. Et sur un modéré la machine, il commence assez rapidement, même avec des annotations.
Composant d'analyse vous permet d'économiser de la définition de chacun de haricots manuellement via xml ou java configuration.
Plusieurs types stéréo sont là pour définir les couches comme couche de service, de la couche de données, etc. Également basé sur les différents types stéréo si vous voulez faire quelque chose de spécifique, vous pouvez le faire.