Pourquoi n'utiliser qu'un seul objet SessionFactory par application?

Pourquoi utiliser un seul objet de SessionFactory par application? Quels sont les avantages d'utiliser une seule session d'un objet factory par application?

25
demandé sur Viraj Dhamal 2013-01-19 10:41:52
la source

4 ответов

les objets session factory doivent être implémentés en utilisant le singleton

Parce que la création d'un SessionFactory est un processus extrêmement coûteux qui implique l'analyse des propriétés de configuration/cartographie d'hibernation et la création d'un pool de connexion à la base de données .La création d'un pool de connexion à une base de données nécessite l'établissement de connexions à une base de données (I. e creating Connexion les objets) qui a overhead en raison du temps nécessaire pour localiser le serveur DB , établir un canal de communication et d'échanger des informations pour faire l'authentification.

Donc, si vous créez un SessionFactory pour chaque requête, cela implique que vous n'utilisez pas database connection pool pour répondre à votre requête .Vous devez configurer une nouvelle connexion par le processus surchauffé ci-dessus pour chaque requête au lieu de simplement obtenir la connexion ouverte à partir de la piscine de connexion de base de données.

15
répondu Ken Chan 2013-01-19 11:21:53
la source

il y a quelques points clés concernant un objet de SessionFactory par application: -

1.Seul Magasin de Données : – Il est le seul magasin de données pour l'ensemble de votre demande. Bien que vous puissiez avoir plusieurs SessionFactory mais chaque SessionFactory aura une base de données différente associée avec elle.

2.Thread Safe: - SessionFactory est un thread sûr, donc grâce à cette fonctionnalité, beaucoup de thread peuvent accéder à SessionFactory.

3.Immuable: - une fois que la SessionFactory objet est créé vous ne pouvez pas modifier ou définir les valeurs de Session Facotyr. Son état interne est fixé au moment de la création.

4.Singleton: - SessionFactory est construit au moment du démarrage de l'application et suit le modèle de conception singleton.

j'espère que cela répondra à votre question..

pour plus de détails sur la façon de créer sessionfactory, veuillez vous référer à L'URL : http://techpost360.blogspot.in/2015/07/what-is-hibernate-sessionfactory.html

3
répondu Rahul Wagh 2015-09-07 12:50:25
la source

Ya, il est très simple de comprendre que sessionFactory suit le modèle de conception singleton. Vous ne pouvez donc créer qu'un seul objet dans l'application hole. SessionFactory est également sûr pour les threads, donc seul un thread peut exécuter son code à la fois. L'instance de sessionFactory est fortement pondérée parce qu'elle contient la connexion, la configuration d'hibernation, les fichiers de mappage, le chemin de localisation donc si vous créez le nombre d'instance de sessionFactory alors votre code devient très lourd. En raison de cette raison, nous n'utilisons qu' une instance de sessionFactory pour une application. Pour améliorer les performances de notre application, nous n'utilisons qu'une seule instance de sessionFactory dans une application.

3
répondu Ashutosh kumar 2016-06-16 23:44:33
la source

Autres questions sur