java - spring中配置的bean是单例么?如何证明
PHPz
PHPz 2017-04-18 09:42:21
0
4
566

比如,在spring的配置文件中,配置了如下的bean。

<bean id = "privilegeRoleBo" 
    class = "com.alibaba.tboss.biz.privilege.impl.PrivilegeRoleBoImpl"></bean>

上面的bean应该不是单例的,因为如果项目部署在集群上,集群的每台机器上都维护着一个名字为privilegeRoleBo的bean吧,这样的话,privilegeRoleBo这个bean就不是单例的吧?如果我要配置一个单例的bean,该如何配置呢?
另外,如何写一个小Demo,可以验证一下当前的bean是否是单例??

PHPz
PHPz

学习是最好的投资!

répondre à tous(4)
Ty80

La réponse ci-dessus est correcte. Les singletons Java doivent être limités à une JVM Tout comme Servlet 只会存在一个实例 cette phrase est également limitée à une JVM. S'il y a plusieurs JVM, il y en aura une pour chaque exemple de JVM. En fait, dans de nombreux cas, il n'y a pas de problème majeur lié au fait que les instances ne peuvent pas être migrées entre plusieurs JVM, comme les connexions à une base de données ou les classes d'informations de fichiers de configuration en lecture seule. Mais si vous souhaitez synchroniser plusieurs JVM, vous devez utiliser d'autres méthodes, telles que les verrous de fichiers, les services de coordination de distribution, etc. Par exemple, l'objet HttpSession est synchronisé à l'aide de la migration JVM.

巴扎黑

Le singleton au niveau du langage Java fait référence à la même JVM, et le cluster ne peut pas être utilisé. Si le singleton que vous souhaitez configurer est destiné au partage de données, les données doivent être stockées dans une base de données ou dans un endroit comme redis

刘奇

Le problème des singletons de cluster a été mentionné ci-dessus. Laissez-moi vous expliquer comment vérifier si le bean actuel est un singleton. Vous pouvez exécuter le projet en mode débogage, envoyer deux requêtes et vérifier les privilegeRoleBo utilisés. le bean s'adresse à la même chose ? Si oui, ce sont des singletons

刘奇

le bean a une portée de propriété

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal