使用两个ServletContext的spring web应用程序



我们可以有两个ServletContext的spring容器吗?我只是问这个问题,因为我们在春天有Application范围,它的范围是每个ServletContext的bean。那么我们可以有两个这样的bean实例吗?

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

解决方案A)将对象的作用域更改为prototype,并招募一些bean的实例。

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

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

相关内容

  • 没有找到相关文章

最新更新