请问有人能解释一下这两个Spring bean作用域之间的区别吗?我熟悉单例模式。
这是唯一的区别吗?使用应用程序作用域可以在Spring容器中拥有一系列的bean。
此外,您能否在一个Spring容器中运行多个Web服务器?如果可以,那么使用应用程序作用域而不是单例作用域将是一个理由,因为否则bean将在两个服务器之间共享。
请问有人能解释一下这两个Spring bean作用域之间的区别吗?我熟悉单例模式。
这是唯一的区别吗?使用应用程序作用域可以在Spring容器中拥有一系列的bean。
此外,您能否在一个Spring容器中运行多个Web服务器?如果可以,那么使用应用程序作用域而不是单例作用域将是一个理由,因为否则bean将在两个服务器之间共享。
文档解释如下:
这与Spring单例bean有些相似,但有两个重要的区别:它是每个ServletContext的单例,而不是每个Spring 'ApplicationContext'的单例(在任何给定的Web应用程序中可能有多个),并且它实际上被公开,因此作为ServletContext属性可见
//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.