Personnalisé annotation au printemps
J'ai vu quelques exemples de cas où personnalisé annotations ont été utilisés. exemple
@SimpleAnnotation
class SampleBean {
@SimpleAnnotation
public String getName() {
return "AAA";
}
public void setName(String name) {
}
public int getHeight() {
return 201;
}
}
@Target( { ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@interface SimpleAnnotation {
}
Si quelqu'un peut dire pourquoi nous l'utiliser?
OriginalL'auteur Junaidaj | 2011-10-21
Vous devez vous connecter pour publier un commentaire.
Printemps prend en charge de nombreux Annotation de la notion de "méta-annotation". (Je ne suis pas sûr si c'est pour tous.)
- Ce que cela signifie que vous pouvez construire votre propre annotation et d'annoter l'annotation avec l'un des ressorts "de base" annotations.
Par exemple:
Ensuite, vous pouvez utiliser cette annotation au lieu de
@Service
. (Btw:@Service
,@Repository
,@Controller
utiliser la même technique pour "hériter" de@Component
)Un exemple qui font un usage intensif de ce qui est "héritent" de
@Qualifier
.Pour un exemple et une explication, avoir un regard sur Printemps de Référence Chapitre: 3.9.3 Fine-tuning annotation de base permettra à l'autowiring avec des qualificatifs (L'Exemple avec
@Genre
est à la fin du chapitre.)Un très utile de construire qui peut être fait avec cette technique est qu'elle vous permet de combiner plusieurs Annotations à un (dans votre cas) plus de sens complet. Donc au lieu d'écrire à chaque classe d'un type toujours les deux mêmes annotations, par exemple:
@Service
et@Qualifiyer("someting")
(org.springframework.les haricots.usine.annotation.Qualifier). Vous pouvez créer votre propre annotation qui est annoté avec ces deux annotations, puis de les utiliser dans vos haricots seul annotations personnalisées. (@Voir Éviter De Printemps Annotation Odeur De Code À Ressort 3 Personnalisé Annotations)Si vous voulez voir comment puissant cette technique peut être utiliser, vous pouvez regarder le Contexte et l'Injection de Dépendance Cadre.
Question de la commentaire:
Les Annotations (défini par @Interface) fonctionnent un peu comme les haricots. Ce sont les propriétés qui peuvent/doivent être définir si vous utilisez les annotations. Les valeurs peuvent être par la suite être lu via l'API reflection.
Par exemple le
@Controller
Annotation au Printemps:Le champ avec le nom
value
est le champ qui peut être utilisé sans nom explicite: (@Controller("myUrl")
est la même@Controller(value="myUrl")
)voir ma réponse étendue
OriginalL'auteur Ralph
Vous pouvez créer votre propre méta-annotations qui recueillent plusieurs autres Printemps des annotations afin de réduire les méta-standard dans votre code:
Et alors vous pouvez simplement écrire:
Printemps trouverez la
@ReadOnlyService
et de la sémantique de le remplacer par:Bien sûr, d'avoir personnalisé les annotations de paie lorsque vous avez des tonnes de services annoté avec le même jeu de Printemps annotations qui peuvent être remplacés par un seul, le bien nommé annotation.
Exemples tirés de: Éviter De Printemps Annotation Odeur De Code: Utiliser Le Printemps 3 Personnalisé Annotations
Cela signifie qu'au lieu d'utiliser ces trois annotations de plus et plus vous pouvez les remplacer avec un. Voir ma mise à jour.
OriginalL'auteur Tomasz Nurkiewicz
Personnalisé annotations ne pas faire n'importe quoi sur leur propre. Ils sont de simples marqueurs dans le code. Leur réel pouvoir vient d'outils qui permettent de rechercher des annotations spécifiques. Comme certains des autres réponses mentionner, le Printemps a plusieurs utilisations pour les annotations et maintenant mécanismes pour définir vos propres types de composant. Très soigné. Un autre exemple, il y a quelques semaines, j'ai utilisé de l'AOP et quelques annotations personnalisées à offrir une simple méthode de niveau résultat de la mise en cache. Maintenant que j'ai le cache du moteur en place, et à la appropriée de l'AOP crochets défini, si je veux mettre en cache une méthode, j'ajoute simplement que l'annotation. Certaines personnes tout simplement utiliser les annotations de fantaisie de métadonnées pour en améliorer la lisibilité.
À la fin de la journée, ils sont un outil assez simple que vous pouvez utiliser pour un grand nombre de choses.
OriginalL'auteur allingeek
La meilleure partie de l'aide personnalisée, les annotations, c'est que vous n'avez pas à faire toute la configuration, le Printemps va détecter automatiquement que ces haricots sont les composants de service et tout fonctionnera correctement. Personnalisé Annotations sont une très petite fonctionnalité ajoutée dans le Printemps, mais sont très utiles.Pour les détails, jetez un oeil à ce
http://java.dzone.com/articles/avoid-spring-annotation-code-smell-use-spring3-custom-annotations
OriginalL'auteur bilash.saha
Deux options:
vous avez besoin de la
@Component
annotation sur votre annotations personnalisées. De cette façon, vous pouvez utiliser votre annotations personnalisées pour marquer les classes comme les haricots. En outre, vous pouvez ajouter une valeur par défaut portée et d'autres méta-informationsqualificatifs - vous pouvez utiliser le qualificatif d'annotations (annotés avec le
@Qualifier
méta-annotation) pour faire la distinction entre les implémentations de la même interface.OriginalL'auteur Bozho
Un modèle commun est également à l'utilisation des annotations dans les AOP pointcuts. Pas spécifiquement Printemps, mais souvent employée lors de l'utilisation de Spring AOP.
OriginalL'auteur pap