article(s) dans votre panier VOIR

L'instanciation d'objets avec Spring

  • Vidéo 34 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
L'instanciation d'objets
00:00 / 04:06
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

Dans une application utilisant Spring, on favorisera les objets classe de type Java Bean qui respecte donc les principes suivants :

Les propriétés partagées sont privées et accessibles via des accesseurs (get) / mutateurs (set) publiques

Un constructeur sans paramètre

Serializable

Mais cela pourrait aussi être une instance de n’importe quelle « type » de classe et dans ce cas-là on dispose d'autres possibilités de contrôle.

Spring propose plusieurs solutions pour contrôler des objets :

Avec des JavaBean, en indiquant le nom de la classe et utilisant les “setters” du bean via les balises (comme nous l'avons vu)‏

En utilisant un constructeur

En utilisant une méthode statique ou d'instance de classe (Factory).

Elle s'utilise en « dernier recours » lorsque les 2 premières solutions sont impossibles à mettre en œuvre (Nous ne l'exploiterons pas dans ce cours)

 

L'injection par constructeur consiste à indiquer dans le fichier de configuration les paramètres passés au constructeur grâce aux balises comme suit :

public class FactureController {
	
	private int identifiant;
	
	public FactureController(){
	}
	public FactureController(int identifiant){
	   this.identifiant=identifiant;
	}
…
}
				

<?xml version="1.0" encoding="UTF-8" ?>
...				
<bean id="factureController" class="com.mycompany.td.controller.FactureController">
	<constructor-arg value="1" />
</bean>

Contrairement à l'utilisation de la balise <property>, on est incapable ici de prévoir à la lecture du fichier XML à quelle propriété va être affectée la valeur 1. Si le constructeur utilisé avait plusieurs paramètres, on

aurait enchaîné les balises dans l'ordre des paramètres du constructeur. Si l'on ne souhaite pas faire confiance à Spring pour

transformer les valeurs des arguments dans le type Java équivalent, où si l'on souhaite imposer un type, on peut le préciser via l'attribut type. Enfin, les paramètres du constructeur peuvent être des

références vers d'autres beans (Injection).