我在同一个项目中有一个Web应用程序和SOAP Web服务。我已经定义了两个servlet xml
MVC-servlet.xml中
<import resource="ws-applicationContext.xml"/>
皂servlet.xml中
<import resource="soap-applicationContext.xml"/>
将这些applicationContext导入一个公共文件
soap-applicationContext.xml的内容
<import resource="my-common-applicationContext.xml"/>
<context:annotation-config/>
<context:component-scan base-package="com.xyz.myproject1"/>
ws-applicationContext.xml的内容
<import resource="my-common-applicationContext.xml"/>
<context:annotation-config/>
<context:component-scan base-package="com.xyz.myproject2"/>
my-common-applicationContext.xml包含集成,数据等所需的公共包。
在应用程序启动时,由于my-common-applicationContext.xml包含在应用程序上下文中,因此会加载两次。这导致DataConfigurations被加载两次。
解决此问题的最佳方法是什么,同时确保上下文都可以访问相关的bean?
答案 0 :(得分:0)
找出正确的方法。 所有常见文件都有共同点,但加载了ContextLoaderListener。这确保了所有课程都可用。
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:my-common-applicationContext.xml
</param-value>
</context-param>