Annotations de base de Spring Boot que tout le monde devrait connaître

Publié: 2021-12-13

Java Spring Framework est un framework open source et de niveau entreprise utilisé pour créer des applications autonomes de niveau production qui s'exécutent sur la machine virtuelle Java (JVM). À cette fin, Java Spring Boot est un outil qui simplifie et accélère le développement d'applications Web et de microservices avec Spring Framework. Pour cela, Java Spring Boot exploite trois fonctionnalités principales : la configuration automatique, une approche avisée de la configuration et la possibilité de créer des applications autonomes. La fusion de ces fonctionnalités principales fournit un outil qui permet aux développeurs de configurer des applications basées sur Spring avec des configurations minimales.

Avant les annotations, le comportement de Spring Framework était principalement contrôlé par la configuration XML. Cependant, les annotations Spring Boot ont considérablement modifié la façon dont vous pouvez configurer les comportements de Spring Framework.

Dans cet article, nous allons passer en revue certaines des annotations de base dans Spring Framework.

Table des matières

Que sont les annotations de démarrage de printemps ?

Les annotations Spring Boot sont une forme de métadonnées. Ils ne font pas partie de l'application en cours de développement en soi, mais fournissent des données supplémentaires sur un programme. Les annotations n'ont pas d'impact direct sur le fonctionnement du code qu'elles annotent, ni ne modifient l'action du programme compilé.

Les applications Spring nécessitent un degré de configuration important. Spring Boot est un cadre d'opinion qui s'appuie sur Spring Framework. Il minimise les efforts de configuration et le passe-partout dont on a besoin pour commencer. Les annotations Spring Boot sont la clé pour prendre le contrôle de Spring Framework, diriger le framework et remplacer ses valeurs par défaut si nécessaire. Ces annotations sont faciles à utiliser et plus rapides que de créer les fonctionnalités équivalentes à partir de zéro.

Annotations de démarrage de printemps que tout le monde devrait connaître

Bien que Spring Boot fonctionne avec Java, Groovy et Kotlin, nous nous concentrerons sur Java tout en discutant des annotations importantes de Spring Boot.

1. @Configuration

La @Configuration est utilisée dans les classes qui définissent les beans. Un analogue du fichier de configuration XML est une annotation au niveau de la classe utilisée comme source de définitions de bean. Une classe Java annotée @Configuration est une configuration en soi et possède des méthodes pour configurer et instancier les dépendances.

Exemple:

@Configuration

Bus de classe publique

{

@Moteur BeanBus()

{

renvoie nouveau Bus();

}

}

2. @Bean

Alternative à la balise XML <bean>, l'annotation @Bean est utilisée au niveau de la méthode pour indiquer qu'une méthode produit un bean à gérer par le conteneur Spring. Cette annotation fonctionne avec @Configuration pour créer des beans Spring. @Configuration a des méthodes pour configurer et instancier les dépendances, et ces méthodes sont annotées par @Bean.

Exemple:

@Haricot

Public BeanExample beanExample ()

{

renvoie un nouveau BeanExample (),

}

3. @ComponentScan

L'annotation @ComponentScan est utilisée pour analyser un paquet de beans. Il est utilisé avec l'annotation @Configuration pour informer Spring des packages qui doivent être analysés pour les composants annotés.

Exemple:

@ComponentScan(basePackages = "com.xyz")

@Configuration

Classe publique ScanComponent

{

//…

}

4. @Composant

L'annotation @Component est utilisée sur les classes pour désigner un composant Spring. Il s'agit d'une annotation au niveau de la classe qui convertit la classe en bean Spring lors de l'analyse automatique.

Exemple:

@Composant

Enseignants de la classe publique

{

……

}

5. @EnableAutoConfiguration

L'annotation @EnableAutoConfiguration est généralement placée sur la classe d'application principale et définit implicitement un package de recherche de base. En fonction des paramètres de chemin de classe, de divers paramètres de propriété et d'autres beans, @EnableAutoConfiguration ordonne à Spring Boot de commencer à ajouter des beans.

6. @SpringBootApplication

L'annotation @SpringBootApplication ajoute trois annotations : @Configuration, @EnableAutoConfiguration et @ComponentScan. Il est utilisé sur la classe d'application lors de la configuration du projet Spring Boot, et la classe annotée avec @SpringBootApplication est placée dans le package de base. @SpringBootApplication effectue l'analyse des composants, mais uniquement des sous-packages.

7. @Référentiel

L'annotation @Repository est utilisée sur les classes Java qui accèdent directement à la base de données. Il fonctionne comme un marqueur pour les classes qui remplissent le rôle d'objet d'accès aux données ou de référentiel.

Exemple:

@Dépôt

classe publique TestRepository

{

public void delete()

{

// code de persistance

}

}

8. @Service

Il s'agit d'une annotation au niveau de la classe qui marque une classe Java exécutant un service tel que l'exécution d'une logique métier, l'exécution de calculs ou l'appel d'API externes. Une annotation @Service est une forme spéciale de l'annotation @Component à utiliser dans la couche de service.

Exemple:

@Service

classe publique TestService

{

service vide public1()

{

// code métier

}

}

9. @Autowired

Cette annotation injecte implicitement une dépendance d'objet et est appliquée sur les champs, les constructeurs et les méthodes de définition. Lorsque @Autowired est utilisé sur des champs et que les valeurs des champs sont transmises à l'aide du nom de la propriété, Spring attribue automatiquement les champs avec les valeurs transmises.

10. @Contrôleur

L'annotation @Controller est utilisée sur les classes Java qui servent de contrôleur dans une application. Il permet la détection automatique des classes de composants dans le chemin de classe et également l'enregistrement automatique des définitions de bean pour celles-ci. L'annotation @Controller est généralement utilisée avec @RequestMapping, et les classes Java annotées avec @Controller peuvent gérer plusieurs mappages de requêtes.

Exemple:

@Manette

@RequestMapping("voitures")

classe publique CarsController

{

@RequestMapping(value= "/{name}", method= RequestMethod.GET)

Employé public getCarsByName()

{

Modèle de voitures de retour ;

}

}

11. @RequestMapping

L'annotation @RequestMapping est utilisée à la fois au niveau de la méthode et de la classe. Il sert à mapper les requêtes Web sur des méthodes de gestionnaire et des classes de gestionnaire spécifiées. Lorsque @RequestMapping est utilisé sur des méthodes, il donne l'URL sur laquelle l'exécution des méthodes du gestionnaire se produira. Au contraire, lorsque l'annotation est utilisée au niveau des classes, elle crée une URL de base pour laquelle le contrôleur sera utilisé. Par conséquent, chaque méthode de gestionnaire aura son mappage de demande respectif, tandis que le mappage de demande au niveau de la classe reste le même.

Exemple:

@Manette

classe publique FlowersController

{

@RequestMapping ("/couleur-rouge/fleurs")

chaîne publique getAllFlowers (modèle de modèle)

{

//code d'application

retourner "liste de fleurs" ;

}

12. @Qualification

@Qualifier est utilisé avec @Autowired lorsqu'un contrôle accru est nécessaire sur le processus d'injection de dépendance. L'annotation @Qualifier peut être spécifiée soit sur des paramètres de méthode, soit sur des arguments de constructeur individuels. Des confusions surviennent généralement lorsque le développeur crée plusieurs beans du même type, mais qu'un seul d'entre eux doit être câblé avec une propriété. L'annotation @Qualifier est pratique pour éliminer ces confusions.

Exemple:

@Composant

la classe publique BeanB1 implémente BeanInterface {

//

}

@Composant

la classe publique BeanB2 implémente BeanInterface {

//

}

Dans l'exemple ci-dessus, BeanInterface est implémenté par les deux beans BeanB1 et BeanB2. Maintenant, si BeanA connecte automatiquement cette interface, Spring ne saura pas laquelle des deux implémentations il doit injecter. Vous pouvez résoudre ce problème en utilisant l'annotation @Qualifier. Avec cette annotation en place, Spring saura lequel des beans autowire.

@Composant

classe publique BeanA {

@Autowired

@Qualifier("beanB2")

dépendance BeanInterface privée ;

}

13. @Valeur

L'annotation @Value est utilisée au niveau du champ, du paramètre de méthode et du paramètre de constructeur. Il désigne une expression de valeur par défaut pour le paramètre ou le champ avec lequel initialiser la propriété.

14. @Paresseux

L'annotation @Lazy est appliquée aux classes de composants. Au démarrage, toutes les dépendances autocâblées sont créées et configurées par défaut. Mais l'annotation @Lazy peut être utilisée si le développeur souhaite initialiser un bean paresseusement. Ainsi, le bean est créé et initialisé uniquement sur demande. L'annotation @Lazy peut également être utilisée sur les classes @Configuration, ce qui signifie que toutes les méthodes @Bean de cette @Configuration seront lancées paresseusement.

Bien que cette liste d'annotations Java Spring Boot ne soit pas exhaustive, elle couvre plus ou moins les plus basiques que tout développeur ou passionné de Java devrait connaître. Après tout, Spring Boot a simplifié le développement d'applications basées sur Spring et mérite d'être connu.

Master of Science en science des données de l'Université John Moores de Liverpool

Si vous êtes un data scientist en herbe, voici une opportunité d'apprendre des meilleurs. upGrad propose un Master of Science en science des données en ligne en partenariat avec l'Université John Moores de Liverpool, spécialement conçu pour les professionnels en activité qui cherchent à perfectionner leurs compétences et leurs connaissances en science des données.

Voici quelques faits saillants du programme en un coup d'œil :

  • Master de LJMU et Executive PGP de l'IIT Bangalore
  • Plus de 500 heures d'apprentissage avec des sessions en direct, des études de cas et des projets
  • Couverture complète de plus de 14 outils et logiciels
  • Trois spécialisations uniques
  • Assistance professionnelle dédiée à 360 degrés
  • Apprentissage par les pairs et mise en réseau de l'industrie

Les programmes d'apprentissage immersifs et pertinents pour l'industrie d'upGrad ont touché plus de 500 000 professionnels actifs dans le monde et continuent d'établir des normes élevées dans l'industrie de l'EdTech supérieure. Alors, postulez dès aujourd'hui et rejoignez la base mondiale de plus de 40 000 apprenants répartis dans 85 pays !

Apprenez des cours de science des données en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Quel est le but du démarreur Spring Boot ?

Les démarreurs Spring Boot sont des descripteurs de dépendance qui permettent d'ajouter des jars dans le chemin de classe. Chaque starter a le modèle de nommage suivant dans le framework Spring Boot : spring-boot-starter-*, où le * représente un type d'application particulier.

Quelle est la différence entre @SpringBootApplication et @EnableAutoConfiguration ?

La tâche principale de @EnableAutoConfiguration est d'activer les fonctionnalités de configuration automatique de l'application Spring Boot. Au contraire, @SpringBootApplication combine trois annotations - @ComponentScan pour l'analyse des composants, @Configuration pour la configuration basée sur Java sur le framework Spring et @EnableAutoConfiguration pour permettre la configuration automatique dans les applications Spring Boot.

Le démarrage de Spring peut-il fonctionner sans SpringBootApplication ?

Il n'est pas obligatoire d'utiliser @SpringBootApplication pour créer une application Spring Boot. Vous pouvez toujours utiliser @EnableAutoConfiguration et @Configuration individuellement.