2009-02-14 7 views
2

Existe-t-il des annotations courantes? Similaire à commun-lang? Si ce n'est pas le cas, avez-vous constaté une utilisation efficace des annotations (pas d'annotations intégrées) dans le cadre du développement d'une application Open Source? Je me souviens que Mifos l'utilisait pour Transaction.Annotations ou annotations communément réutilisables?

Mohan

Répondre

4

je pense que Hibernate Validator a des annotations vraiment bons et réutilisables pour tout type de validation. il est basé sur une implémentation de référence pour JSR 303: Bean Validation.

4

Seules les annotations non standard que j'ai utilisées plusieurs fois en dehors de mon projet de test ont été WicketStuff Annotations, ce qui est très utile dans leur propre contexte.

Un autre jeu d'annotations intéressant qui est également à la base de JSR-305 est FindBugs' annotations, ce qui peut également s'avérer utile dans le futur - nous verrons comment cela se passe.

0

Il faut vraiment qu'il y ait un ensemble d'annotations communes dans le noyau jre qui sont utilisées de manière similaire dans des cadres multiples.

par exemple @Transactional @Nullable

2

Regarde mes annotations Bean

http://code.google.com/p/javadude/wiki/Annotations

choses comme

@Bean(
    cloneable=true, 
    defineSimpleEqualsAndHashCode=true, 
    properties={ 
     @Property(name="name", bound=true), 
     @Property(name="age", type=int.class, bound=true), 
     @Property(name="friend", type=Person.class, kind=PropertyKind.LIST) 
    }, 
    observers={ 
     @Observer(type=FeverListener.class) 
    } 
) 
public class Person extends PersonGen { } 

Le processeur d'annotation génère la superclasse PersonGen.

Notez que je travaille actuellement sur un changement majeur pour eux et l'API est de changer (je laisse toujours la version actuelle disponible, mais le flux de version 3.xx violeront)

I » J'essaie de faire la nouvelle version dans les deux prochaines semaines.

+0

Cela semble intéressant, mais je voudrais vraiment ne pas générer des classes préfèrent supplémentaires, ou d'avoir à sous-classe/tout mettre en œuvre. Garder les POJO comme POJO. Est-il possible de simplement valider en utilisant des annotations sans génération de code? – StaxMan

+0

Ce sont vraiment des POJOs (juste un POJO à deux classes au lieu d'un). Beaucoup plus agréable que d'écrire tout ce passe-partout ... Aussi - vous pouvez spécifier @Bean (superclasse = SomeClass.class ...) et la superclasse générée étendra cette classe, en interagissant entre eux. –

0

JAXB définit les annotations (javax.xml.bind.annotation) qui sont réutilisées dans une certaine mesure - bien qu'elles soient nommées pour indiquer qu'elles ne concernent que la sérialisation XML, la plupart des métadonnées concernent les propriétés d'annotation à sérialiser, donc ils peuvent également être utilisés pour la sérialisation vers d'autres formats de données (tels que JSON). Jackson JSON processor les prend en charge, le long de ses propres annotations «natives», car il n'y a pas vraiment standardise les annotations spécifiques au format non-données (AFAIK).

Questions connexes