Table des matières
Qu'est-ce que l'annotation ?
objets peuvent être ajoutés avec Annotation" >Ces objets peuvent être ajoutés avec Annotation
Annotation intégrée
peut être utilisé avec l'annotation
frameworks
très connu Lorsque vous utilisez Junit, vous devez être exposé à de nombreuses annotations.
Spring
Hibernate
JSR 303 – Bean Validation
Maison Java javaDidacticiel Explication détaillée des fonctionnalités d'annotation Java

Explication détaillée des fonctionnalités d'annotation Java

Mar 30, 2017 am 10:51 AM

Qu'est-ce que l'annotation ?

L'annotation est traduite en chinois par annotation, ce qui signifie fournir des informations de données supplémentaires en plus de la logique du programme lui-même. L'annotation n'a pas d'impact direct sur le code annoté. Elle ne peut pas interagir directement avec le code annoté, mais d'autres composants peuvent utiliser ces informations.

Les informations d'annotation peuvent être compilées dans des fichiers class, ou elles peuvent être conservées dans la machine virtuelle Java, afin qu'elles puissent être obtenues au moment de l'exécution. L'annotation peut même être ajoutée à l'annotation elle-même.

Ces objets peuvent être ajoutés avec Annotation

classes, méthodes, variables, paramètres et packages peut être ajouté une annotation.

Annotation intégrée

@Override SurchargeL'utilisation de la méthode ou du type @Deprecated dans la classe parent n'est plus recommandée

@SuppressWarnings Prevent messages d'avertissement au moment de la compilation. Il doit recevoir un Array de String comme paramètre. Les paramètres disponibles sont :

  • non coché

  • chemin

  • série

  • enfin

  • fallthrough

peut être utilisé avec l'annotation

@ Retention

détermine le

cycle de vie de l'annotation en cours d'enregistrement et doit recevoir un objet Enum RetentionPolicy en tant que paramètre.

public enum RetentionPolicy {
    /**
     * Annotations are to be discarded by the compiler.
     */
    SOURCE,

    /**
     * Annotations are to be recorded in the class file by the compiler
     * but need not be retained by the VM at run time.  This is the default
     * behavior.
     */
    CLASS,

    /**
     * Annotations are to be recorded in the class file by the compiler and
     * retained by the VM at run time, so they may be read reflectively.
     *
     * @see java.lang.reflect.AnnotatedElement
     */
    RUNTIME
}
Copier après la connexion

@Documenté Documenté

@Target

indique la plage que l'Annotation peut modifier, et reçoit un Enum Tableau d'objets EnumType en paramètre.

public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,

    /** Field declaration (includes enum constants) */
    FIELD,

    /** Method declaration */
    METHOD,

    /** Parameter declaration */
    PARAMETER,

    /** Constructor declaration */
    CONSTRUCTOR,

    /** Local variable declaration */
    LOCAL_VARIABLE,

    /** Annotation type declaration */
    ANNOTATION_TYPE,

    /** Package declaration */
    PACKAGE
}
Copier après la connexion

@Inherited

Cette annotation peut affecter les sous-classes de la classe annotée.

Annotation personnalisée

Nous pouvons personnaliser l'annotation après JSE5.0. Voici un exemple simple.

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MethodAnnotation {

}
Copier après la connexion
L'objet Person suivant utilise une MethodAnnotation personnalisée.

public class Person {

    public void eat() {
        System.out.println("eating");
    }

    @MethodAnnotation
    public void walk() {
        System.out.print("walking");
    }

}
Copier après la connexion
Nous pouvons obtenir des informations d'annotation par la réflexion.

 Class<Person> personClass = Person.class;
        Method[] methods = personClass.getMethods();
        for(Method method : methods){
            if (method.isAnnotationPresent(MethodAnnotation.class)){
                method.invoke(personClass.newInstance());
            }
        }
Copier après la connexion
Sortie :

walking
Copier après la connexion
Nous pouvons également ajouter des méthodes à l'annotation personnalisée.

@Target(ElementType.TYPE)
public @interface personAnnotation {
    int id() default 1;
    String name() default "bowen";
}
Copier après la connexion
Ce qui suit est l'utilisation de personAnnotation.

@personAnnotation(id = 8, name = "john")
public class Person {

    public void eat() {
        System.out.println("eating");
    }

    @MethodAnnotation
    public void walk() {
        System.out.print("walking");
    }

}
Copier après la connexion
Comment les annotations sont traitées

Lorsque le code source Java est compilé, un processeur d'annotations plug-in du compilateur traitera ces annotations. Le processeur peut générer des informations de rapport ou créer des fichiers source ou des ressources Java supplémentaires. Si l'annotation elle-même est ajoutée avec la classe d'exécution RententionPolicy, le compilateur Java stockera les métadonnées de l'annotation dans le fichier de classe. Ensuite, la machine virtuelle Java ou d'autres programmes peuvent rechercher ces métadonnées et les traiter en conséquence.

Bien sûr, en plus du processeur d'annotation qui peut gérer les annotations, nous pouvons également utiliser la réflexion pour gérer nous-mêmes les annotations. Java SE 5 possède une

interface appelée AnnotatedElement. Les classes d'objets réfléchissants de Java, Class, Constructor, Field, Method et Package, implémentent toutes cette interface. Cette interface est utilisée pour représenter les éléments de programme annotés actuellement en cours d'exécution dans la machine virtuelle Java. Grâce à cette interface, vous pouvez utiliser la réflexion pour lire les annotations. L'interface AnnotatedElement peut accéder aux annotations marquées avec RUNTIME. Les méthodes correspondantes sont getAnnotation, getAnnotations et isAnnotationPresent. Étant donné que les types d'annotations sont compilés et stockés dans des binaires tout comme les classes, les annotations renvoyées par ces méthodes peuvent être interrogées tout comme les objets Java ordinaires. Utilisation étendue de l'annotation

L'annotation est largement utilisée dans divers

frameworks

et bibliothèques.

JunitJunit est un framework de

tests unitaires

très connu Lorsque vous utilisez Junit, vous devez être exposé à de nombreuses annotations.

@Exécuter avec la classe de test personnalisée Runner

  • @ContextConfiguration Définir le ApplicationContext de Spring

  • @DirtiesContext Reload le ApplicationContext avant d'exécuter le test suivant.

  • @Avant l'initialisation avant d'appeler la méthode de test

  • @Après le traitement après l'appel de la méthode de test

  • @Test indique que la méthode est une méthode de test

  • @Ignore peut être ajouté à la classe de test ou à la méthode de test pour ignorer l'opération.

  • @BeforeClass : appelé avant que toutes les méthodes de test de la classe de test soient exécutées, et appelé une seule fois (la méthode marquée doit être

    statique
  • )
  • @AfterClass : appelé après que toutes les méthodes de test de la classe de test ont été exécutées, et exécutées une seule fois (la méthode marquée doit être statique)

Spring

Spring est connu comme l'enfer de la configuration, et il existe de nombreuses annotations.

  • @Service annoter la classe de service

  • @Repository annoter la classe DAO

  • @Component Annoter la classe de composants

  • @Autowired Laisser Spring assembler automatiquement les beans

  • @Transactional Configurer les choses

  • @Scope configure la plage de survie de l'objet

  • @Controller annote la classe du contrôleur

  • @RequestMapping mappage du chemin d'URL

  • @PathVariable mappe les paramètres de méthode aux chemins

  • @RequestParam lie les paramètres de requête aux variables de méthode

  • @ModelAttribute est lié au model

  • @SessionAttributes est défini sur l'attribut de session

Hibernate

  • @Entity modifie le bean entité

  • @Table mappe la classe d'entité à la table de la base de données

  • @Column mappe la colonne

  • @Id mapping id

  • @GeneratedValue Ce champ est auto-croissant

  • @Contrôle de version ou contrôle de concurrence

  • @OrderBy Collation

  • @Lob Large Object Annotation

Hibernate et bien plus encore Concernant l'annotation d'union et l'annotation de héritage , cela n'a aucun sens de les énumérer ici.

JSR 303 – Bean Validation

JSR 303 – Bean Validation est une spécification de validation de données, et sa vérification des beans Java est principalement implémentée via l'annotation Java.

  • @NullAnnoté par L'élément de doit être nul

  • @NotNull annoté Le l'élément ne doit pas être nul

  • @AssertTrueL'élément annoté doit être vrai@AssertFalseL'élément annoté doit être faux@Min(value)L'élément annoté doit être un nombre dont la valeur doit être supérieure à ou égal à la valeur minimale spécifiée

  • @Max(value) L'élément annoté doit être un nombre et sa valeur doit être inférieure ou égale à la valeur maximale spécifiée

  • @DecimalMin(value)L'élément annoté doit être un nombre et sa valeur doit être supérieure ou égale à la valeur minimale spécifiée

  • @DecimalMax( value)L'élément annoté doit être Est un nombre dont la valeur doit être inférieure ou égale à la valeur maximale spécifiée

  • @Size(max, min) La taille de l'élément annoté doit être dans la plage spécifiée

  • @Digits (entier, fraction) L'élément annoté doit être un nombre et sa valeur doit être dans une plage acceptable

  • @Past L'élément annoté doit être Est une date dans le passé

  • L'élément annoté avec @Future doit être une date dans le futur

  • L'élément annoté avec @Pattern(value) Doit être conforme à l'expression régulière spécifiée

En fait, il existe de nombreux frameworks ou bibliothèques qui utilisent l'annotation, donc Je ne les énumérerai pas un par un ici. J'espère que tout le monde pourra tirer des conclusions. En savoir plus sur les annotations en Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo

See all articles