article(s) dans votre panier VOIR

La détection automatique des Beans Spring

  • Vidéo 26 sur 64
  • 3h47 de formation
  • 64 leçons

Un contenu flash devrait s'afficher ici. Votre navigateur ne comporte pas de plugin flash, ou il ne s'est pas correctement initialisé.

Vous pouvez télécharger le plugin flash depuis le site d'Adobe à l'adresse suivante : http://get.adobe.com/flashplayer/.

Pour accéder à la suite de cette formation, vous devez vous abonner.
previous
summary
resume
next
play
La détection automatique des Beans Spring
00:00 / 06:16
HD
fullscreen
Je m’abonne
à partir de 16,6 € / mois
  • Visionnage en ligne
  • Accès illimité à toutes nos formations
OU
J'achète uniquement
la formation
29,90€
  • Téléchargement + VOD à vie
  • Exercice / Validation des acquis
  • Accès uniquement à cette formation

Sommaire de la formation

Détails de la formation

Si on le souhaite, certains beans peuvent être annotés plutôt que déclarés dans le fichier de configuration XML.

Dans ce cas, c'est la présence de l'annotation @Component dans la classe qui va indiquer à Spring qu'une instance en scope Singleton de cette classe est un composant de l'architecture applicative.

 

@Component

public class MyClass{


                public MyClass(){

                    ...

                }

                ...

}

 

Spring va devoir scanner toutes les classes pour voir lesquelles sont annotées. Le package racine à partir duquel le « scan » commence sera précisé dans une ou plusieurs (cas de filtres) balise(s) <context:component-scan> :

 

<?xml version="1.0" encoding="UTF-8" ?>

...

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd">


<context:component-scan base-package="com.jnesis" />

...

 

 

Important : <Un context:component-scan> active automatiquement la configuration par annotation, la balise <context:annotation-config> devient superflue.

 

Il existe en réalité différentes annotations, la plus générique étant:

@Component : elle signifie que ce bean est un composant de nature indéterminé vis à vis de l'architecture SOA.

Des annotations plus spécialisées existent :

@Service : pour signifier que le bean représente un service de l'application

@Repository : pour signifier que le bean représente un DAO de l'application

@Controller : pour signifier que le bean représente un contrôleur de l'application

Ces annotations définissent des stereotypes.

 

L'annotation fonctionne seule mais on peut également préciser l'id associé au bean dans le contexte Spring :

@Service ("employeService")

Si l'id n'est pas précisé, l'id correspondra au nom de la classe avec une minuscule pour commencer :

Classe : FactureService1 → id : factureService1

On ne pourra cependant pas préciser plusieurs id, aussi il ne pourra pas exister plus d'un bean de ce type dans le contexte Spring.

Cela n'était pas le cas avec la configuration XML

Il reste cependant possible d'ajouter dans la configuration XML d'autres beans de ce type

 

Ces annotations s'utilisent « généralement » avec des beans en scope singleton, même si l'usage de @Scope permet de modifier si nécessaire le scope du bean.

Spring 3.0 supporte désormais intégralement la configuration par annotation plutôt que dans le fichier de configuration XML. Les annotations sont prises en charge avant le fichier de configuration, ce dernier surchargeant le cas échéant les annotations.

Les beans détéctés par annotations seront pris en charge par le même ApplicationContext que les beans déclarés dans la configuration XML, ils pourront donc au même titre être injectés dans les propriétés d'autres beans.