...
| Remarque | ||||
|---|---|---|---|---|
Usuellement un bean de scope request peut faire référence, via ses propriétés, à un bean de scope session ou singleton. De même, un bean de scope session peut faire référence à un bean de scope singleton. Une bonne architecture nous ammène d'ailleurs à utiliser dans ce sens l'injection de beans. Par défaut la réciproque provoque une exception ... mais il est cependant possible de réaliser cette réciproque par le biais de l'aop, et cela très simplement. Concrètement si nous voulons ici injecter le bean administratorsController qui est de scope session dans un bean de scope singleton, on utilisera la balise aop:scoped-proxy comme ceci dans la déclaration du bean administratorsController :
Pour ce faire, on aura pris soin de déclarer comme il se doit l'espace de noms aop, avec dans la balise racine du fichier de configurations de beans spring ceci :
Attention vous devez bien utiliser spring-beans-2.0.xsd et spring-aop-2.0.xsd (-2.0.xsd pour les deux xsd) | ||||
| Avertissement |
Récupération des beans
Lorsque l'on veut récupérer un bean à partir de son nom, il faut obligatoirement utiliser la classe BeanUtils fournie par esup-commons.
En mode batch par exemple, on utilisera :
| Bloc de code |
|---|
DomainService domainService = (DomainService) BeanUtils.getBean("domainService");
note |
| Avertissement |
|---|
|