有人能解释这两个Spring bean范围之间的区别吗? 我熟悉Singleton模式。
这是唯一的区别吗? 您可以使用应用程序范围在Spring容器中获得bean列表。
此外,您是否能够在一个Spring容器中运行多个Web服务器?如果是,那将是在单例范围内使用应用程序范围的原因,否则bean将通过两个服务器共享。
答案 0 :(得分:2)
这有点类似于Spring单例bean,但在两个重要方面有所不同:它是每个ServletContext的单例,而不是每个Spring' ApplicationContext' (或者在任何给定的Web应用程序中可能有多个),它实际上是公开的,因此可以作为ServletContext属性显示
答案 1 :(得分:0)
在应用程序范围内,容器为每个Web应用程序运行时创建一个实例。 应用范围几乎与单例范围相似。所以,区别是
应用程序范围的豆是每个ServletContext的单例,而单个作用域的bean 是每个ApplicationContext的单例。这意味着单个应用程序可以有多个应用程序上下文。
单顿酱豆
//load the spring configuration file
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("context.xml");
// retrieve bean from spring container
MyBean myBean = context.getBean("myBean", MyBean.class);
MyBean myBean2 = context.getBean("myBean", MyBean.class);
// myBean == myBean2 - output is true.