WebApplicationContext与ApplicationContext

时间:2012-10-03 15:33:57

标签: spring-mvc

在我的Spring-MMVC应用程序中,

我有一个与我的调度程序servlet相对应的 xx-servlet.xml - 定义我的web层bean /类并导入另一个定义所有持久层bean /服务的context.xml。

在xx-servlet.xml中,

定义了一个实现ApplicationContextProvider接口的ApplicationcontextAware类。

并使用@Component注释了我的所有bean(表示对象),并在需要时从ApplicationContext获取这些bean的实例(不使用WebApplicationContext)。

那么,在这种情况下,我的bean的范围是什么?

此外,如果我使用WebApplicationContext会是什么情况?

什么是最佳做法...使用ApplicationContextWebApplicationContext

1 个答案:

答案 0 :(得分:3)

WebApplicationContext将more scopes(request,session,globalSession)添加到标准的Application上下文(仅提供Singleton和Prototype范围)。如果未指定bean作用域,则默认为Singleton作用域。

最佳做法是,如果您在Web环境中,则应使用WebApplicationContext,以便可以使用这些其他范围和ServletContextAware bean。但如果你不使用它们,那就取决于你。

除此之外,大多数spring mvc基础结构bean都需要WebApplicationContext。