Printemps Bean Étendues
Quelqu'un peut m'expliquer ce que les étendues sont le Printemps des haricots j'ai toujours utilisé de "prototype", mais il existe d'autres paramètres que je peux mettre à la place de qui?
Exemple de ce dont je parle
<bean id="customerInfoController" class="com.action.customer.Controller" scope="prototype">
<property name="accountDao" ref="accountDao"/>
<property name="utilityDao" ref="utilityDao"/>
<property name="account_usageDao" ref="account_usageDao"/>
</bean>
- Voir Haricot Étendues
- mkyong.com/spring/spring-bean-scopes-examples
- Une bien meilleure et la documentation officielle ici
- Très bonne explication ici: codeflex.co/java-spring-portées-expliqué
- Websocket est ajouté depuis le printemps 4.1. 6 Printemps bean étendues
Vous devez vous connecter pour publier un commentaire.
De la printemps specs, il existe cinq types de bean étendues pris en charge :
*moyen par défaut lorsqu'aucun champ d'application est explicitement prévu dans le
<bean />
tag.lisez plus ici: http://static.springsource.org/spring/docs/3.0.0.M3/reference/html/ch04s04.html
Au Printemps, bean est utilisé pour décider du type de haricot instance doit être retourné à partir du Printemps conteneur à l'appelant.
5 types de bean étendues sont pris en charge :
Singleton : Il renvoie un seul exemple d'haricot par Ressort conteneur IoC.Cette instance unique sont stockées dans un cache de ces singleton haricots, et de toutes les demandes et les références pour le nom de haricot de retour de l'objet mis en cache.Si aucun haricot champ d'application est précisé sur le haricot fichier de configuration, par défaut de singleton.
Prototype : Elle retourne une nouvelle instance de bean chaque moment de la demande. Il ne stocke pas les cache version comme singleton.
Demande : Elle retourne un seul haricot instance par requête HTTP.
Session : Elle retourne un seul exemple d'haricot par session HTTP (niveau de l'Utilisateur de la session).
GlobalSession : Elle retourne un seul exemple d'haricot par mondiale de la session HTTP. Il est valable uniquement dans le cadre d'une web-connaissance de Printemps ApplicationContext (niveau de l'Application de session).
Dans la plupart des cas, vous risquez de ne faire affaire qu'avec le Printemps de base du champ d'application – singleton et prototype, et l'étendue par défaut est singleton.
Veux juste mettre à jour, que dans le Ressort 5, comme mentionné dans Printemps docs, le Printemps prend en charge 6 étendues, dont quatre sont disponibles uniquement si vous utilisez un web-connaissance ApplicationContext.
Explication détaillée pour chaque application peut être trouvé ici dans Printemps bean étendues. Ci-dessous est le résumé
Singleton -
(Par défaut) Portées une seule fève définition d'une seule instance de l'objet par le Printemps conteneur IoC.
prototype - Portées une seule fève définition d'un nombre quelconque d'instances de l'objet.
demande - Portées une seule fève définition du cycle de vie d'une seule requête HTTP, qui est, à chaque requête HTTP a sa propre instance d'un bean créé à l'arrière d'un seul haricot définition. Valable uniquement dans le cadre d'une web-connaissance de Printemps ApplicationContext.
session - Portées une seule fève définition du cycle de vie d'une Session HTTP. Valable uniquement dans le cadre d'une web-connaissance de Printemps ApplicationContext.
session global - Portées une seule fève définition du cycle de vie global de la Session HTTP. Généralement valide uniquement lorsque utilisé dans un portlet contexte. Valable uniquement dans le cadre d'une web-connaissance de Printemps ApplicationContext.
La Printemps documentation décrit les suivant la norme étendues:
Personnalisés supplémentaires étendues peuvent également être créés et configurés à l'aide d'un
CustomScopeConfigurer
. Un exemple serait laflow
portée ajouté par Spring Webflow.Par ailleurs, il affirme que vous avez toujours utilisé
prototype
ce que je trouve étrange. La portée standard estsingleton
et dans l'application que je développe, j'ai rarement besoin le prototype de la portée. Vous devriez peut-être jeter un oeil à ce.Sur prototype de haricot(s) :
ref : https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s04.html#beans-factory-scopes-prototype
Selon la la documentation de
Spring-Cloud-Config
il y a un champ à côté de la cinq. Il est@RefreshScope
.C'est la description courte de
RefreshScope
: