在我的Spring-MMVC应用程序中,
我有一个与我的调度程序servlet相对应的 xx-servlet.xml - 定义我的web层bean /类并导入另一个定义所有持久层bean /服务的context.xml。
在xx-servlet.xml中,
定义了一个实现ApplicationContextProvider
接口的ApplicationcontextAware
类。
并使用@Component
注释了我的所有bean(表示对象),并在需要时从ApplicationContext
获取这些bean的实例(不使用WebApplicationContext
)。
那么,在这种情况下,我的bean的范围是什么?
此外,如果我使用WebApplicationContext
会是什么情况?
什么是最佳做法...使用ApplicationContext
或WebApplicationContext
?
答案 0 :(得分:3)
WebApplicationContext将more scopes(request,session,globalSession)添加到标准的Application上下文(仅提供Singleton和Prototype范围)。如果未指定bean作用域,则默认为Singleton作用域。
最佳做法是,如果您在Web环境中,则应使用WebApplicationContext,以便可以使用这些其他范围和ServletContextAware bean。但如果你不使用它们,那就取决于你。
除此之外,大多数spring mvc基础结构bean都需要WebApplicationContext。