我们有一个spring应用程序(单线程设计)。我们希望将其改编为多线程。一个想法是创建一个父线程并生成不同的线程,这些线程将实例化他们自己的应用程序上下文并并行运行。 (目前,内存和CPU并不是一个问题)。我不确定春天是如何实现单身人士的。 Spring是否使用静态引用并返回此内容或使用某种缓存/映射(非静态/非单例和特定于上下文)进行查找?这将帮助我决定是否更改config-xml。请任何想法。
答案 0 :(得分:6)
Spring singleton
bean每个应用程序上下文实例化一次。也就是说,如果您从同一个配置创建许多应用程序上下文,它们将具有不同的单例bean实例。
如果您希望它们共享单个bean的单个实例,您可以在父应用程序上下文中声明它,并在创建它们时为您的多个上下文提供该父上下文。
答案 1 :(得分:2)
为什么需要多个应用程序上下文才能使应用程序成为多线程?多个线程可以很好地使用相同的上下文。
答案 2 :(得分:1)
在我看来,你真的需要看看你的单例bean实际上在做什么,以及它们在多线程环境中的功能。我不会尝试更新您的应用程序上下文以适合您的线程模型,而是尝试适当的bean的生命周期。