春天的单身人士和应用范围模式有什么区别?

时间:2015-09-27 13:09:03

标签: spring spring-mvc

根据春季文件: -

这有点类似于Spring单例bean,但在两个重要方面有所不同:它是每个ServletContext的单例,而不是每个Spring' ApplicationContext' (或者在任何给定的Web应用程序中可能有多个),它实际上是公开的,因此可以作为ServletContext属性显示。

但我无法得到上述内容..

2 个答案:

答案 0 :(得分:1)

ServletContext由应用程序服务器(例如tomcat)提供,同时您可以为Web应用程序定义多个Spring Context(应用程序上下文):http://alvinalexander.com/blog/post/java/how-load-multiple-spring-context-files-web-application

但出于实际目的,这可以忽略不计。更有趣的是,bean通过ServletContext公开/可见:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-scopes-application

答案 1 :(得分:0)

简化Yatin的答案: 这有点类似于Spring单例bean,但在两个重要方面有所不同:它是每个ServletContext的单例,而不是每个Spring容器(或者在任何给定的Web应用程序中可能有几个),并且它实际上是公开的,因此可见为一个ServletContext属性。

换句话说:ServletContext对于每个Web应用程序都是唯一的。但是,根据Web应用程序中的组件,可能会有许多Spring容器。 Singleton是每个容器的每个bean。所以在1个带有3个Spring容器的Web应用程序中: 1.一个ServletContext属性(例如DB连接) 2.同一个豆子的三个单身是可能的。例如三卡支付处理豆。