-
Philosophie de Spring
bonjour ,
depuis quelque jours je lis beaucoup de doc sur Spring.
Mais j'ai peur d'avoir mal compris les bases :
je voudrai savoir si tout repose sur des singletons ?
est ce que tous les utilisateurs partagent les mêmes instances d'objets ou a chaque connection d'un utilisateur un context est créer avec l'ensemble des singleton?
Car je vous explique mon problème. Je voudrai développer une appli web avec aussi spring et hibernate pour sa gestion des objet <=> base de donnée ( relation entre eux) , mais aussi la gestion des filtres . car suivant la personne qui se connectera je n'appliquerai pas les memes filtres sur la sessionFactory, cela simplie les wheres . or si tous est singleton alors tout le monde a le meme session factory et si je le modifie pour un je le modifie pour tous. or je ne voudrai le modifier que pour la "session" en cours (le context attribuer a une personne) et non pour l'application (c'est que fait Application-context.xml si j'ai bien compris ).
-
Si il est vrai que par défaut tout est en singleton, il y a moyen de définir des scopes normalement.
Entre autre "session" qui permet d'avoir une instance de la classe par "session".
Mais bon, je n'ai jamais vraiment testé.
Mais recherche de ce coté :)
RQ : il faut au moins Spring 2.0 pour avoir le scope Session je pense
-
oky merci. je vais jeté un coup d'oeil
-
Tu as la notion de singleton/prototype sur n'importe quelle version de Spring. Par défaut, la bean factory (la fabrique à objet de spring) créé des singletons.
En 2.0, tu as la notion de scope qui adresse plusieurs mode d'instanciation, singleton, par session etc... Ce qui est très souple et marche bien.
-
En ce qui concerne Hibernate, chaque utilisateur n'est pas censé utiliser sa propre sessionFactory. La sessionFactory est globale à l'application.