答案 0 :(得分:0)
根据负载, servlet容器会创建多个servlet实例,开发人员无法控制。但在大多数情况下,容器维护每个servlet的单个实例(因为servlet应该是线程安全的)。
对于Spring singleton
bean,这些是每个Web应用程序的单例 - Spring应用程序上下文存储在servlet上下文中(您可以使用WebApplicationContextUtils.getWebApplicationContext(ServletContext)访问它)。
至于可靠性:是的,你可以依赖这样一个事实:在一个Spring应用程序上下文的范围内,每个单例bean只有一个实例。
答案 1 :(得分:0)
这是一个有趣的问题。
如this previous question中所述,只允许容器实例化一个servlet实例。在这种情况下,您可以保证有一个弹簧上下文和一个单例。
问题是Servlet规范的早期版本会发生什么,我不确定是否明确指定了这种行为。
但实际上,容器只会实例化一个servlet实例 - 我从来没有见过其他人。因此,假设您只获得一个应用程序上下文是安全的。