0

我们可以有一个带有两个 ServletContext 的 spring 容器吗?我只是问这个原因,因为我们Application在 spring 中有作用域,它为每个 ServletContext 定义 bean。那么我们可以有两个这样的bean实例吗?

4

2 回答 2

0

如果您谈论的是特定于 Servlet 的 Spring 应用程序上下文,而不是来自 EE 的 ServletContext,那么是的,可以有它们的多个实例,因为您可以为每个 servlet 定义一个应用程序上下文(然后是根应用程序上下文)。如果您在每个 servlet 上下文中定义了一个应用程序范围的 bean,那么每个 servlet 上下文都有一个实例,即应用程序中有多个实例。

于 2015-10-14T07:09:57.453 回答
-1

每个应用程序不能有多个 ServletContext(根据 JavaEE 定义)。

解决方案 A) 将对象的范围更改为prototype并招募一些 bean 的实例。

解决方案 B)(更好)@Qualifier用于您的 bean,以便您可以为同一个类创建两个不同的 bean。如果您使用基于 xml 的配置,请为您的 bean 提供不同的名称。如果您使用基于类的配置,请使用@Bean(name = "name1"). 放在@Qualifier("name1")一起@Autowired以检索所需的bean。

于 2015-10-14T07:01:59.197 回答