Printemps prototype champ d'application - Cas d'Utilisation?
J'ai bien cerner les différentes étendues de beans Spring. Mais je suis à la recherche pour certains cas d'utilisation du prototype de la portée d'un bean dans l'entreprise niveau des projets. Ce serait formidable si vous pouvez partager des cas concrets d'utilisation de la prototype portée (pas le demande champ d'application).
- Je suis surpris de cette question courte avec pas de code, n'a pas été marqué vers le bas comme pas constructif, trop large. ne m'obtenez pas le mal, je pense que cette question est grande
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé le prototype de haricots à déclarer configuré éléments de formulaire (une zone de texte configuré pour valider les noms, adresses e-mail par exemple) et faire "vivre" les instances d'entre eux pour chaque formulaire créé dans ma webapp. Les détails ne sont pas importants, que le principe, que je voudrais résumer de cette façon:
applicationContext.getBean("myBeanConfiguredFancy1")
comme un genre de méthode de fabrique qui crée l'instance comme préconfiguré dans le xmlJ'ai utilisé un prototype pour la plupart en collaboration avec le printemps
lookup-method
. Ma demande est un serveur de jeu qui doit décoder les octets reçus au port tcp. Considérez les points suivants bean définitionÀ l'intérieur de la mise en œuvre du protocole de classe, j'ai le code suivant pour créer le cadre décodeur
pipeline.addLast("lengthDecoder", createLengthBasedFrameDecoder());
Lorsque cette méthode est appelée, le printemps sera de créer une nouvelle image du décodeur instance et de le retourner.Le haricot retourné par
bean="lengthFieldBasedFrameDecoder"
doit être de portéeprototype
, puisque c'est un stateful bean dans mon application.Remarque: Un protocole n'est rien, mais un ensemble de décodeurs et encodeurs enchaînés. "Chaîne de responsabilité" modèle de conception.
Comme quelqu'un qui a déjà travaillé à SpringSource et ont parlé aux développeurs sur ce sujet. Voici mon point de vue. Le Prototype est très utile pour tester des choses, d'où le nom de prototype et pas createnew ou quelque chose de plus la description de la création d'une nouvelle instance de la fève de chaque et chaque fois que vous en faites la demande à partir du Printemps conteneur.
J'ai aussi trouvé dans mon utilisation au fil des années que je ne peux pas chose de tout autre lieu où prototype de sens que dans tout monde réel de la production de l'application. Si votre objet est titulaire d'état, il ne doit généralement pas être une source de haricot. J'ai trouvé dans toutes les applications que j'ai travaillé sur tous les haricots sont des Services, des Dépôts, et Singleton non de l'état à tenir les objets où j'ai besoin d'ajouter des fonctionnalités comme Transactionality, JPA, JMS et les goûts qui nous donnent l'entreprise dispose que Pojo n'ont pas.
Les objets dans mon système qui tiennent de l'état sont mes Entités et Vue Otd peut-être, ou d'autres choses qui n'ont pas de sens à être une source de Haricot. Donc dans mes applications en production, il n'y a pas eu un "prototype" de la fève.
Nous pouvons utiliser prototype champ d'application dans le cas du modèle de classes(appelées aussi que les Entités hibernate) de l'application ont besoin de différentes instances de la classe du modèle pour chaque thread/demande.
prototype de la portée des résultats dans la création d'une nouvelle instance de bean chaque fois qu'une demande pour le haricot est faite par le code de l'application.
Vous devriez savoir que la destruction du cycle de vie du haricot méthodes ne sont pas appelé prototype d'étendue de haricots, seule l'initialisation des méthodes de rappel sont appelés. Donc, en tant que développeur, vous êtes responsable pour le nettoyage prototype d'étendue de haricot instances et les ressources y tenir.
Java config exemple de prototype de haricots champ d'application –
@Composante
@Scope("prototype")
Élément de la liste
public class BeanClass
{
}