我使用的是spring3.x。我的应用程序中有以下配置文件。
applicationContext.xml
spring-ws-servlet.xml
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>spring-ws</servlet-name>
<servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-ws-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>spring-ws</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我的问题是我们需要在applicationContext.xml
中保留什么样的bean以及我们需要在spring-ws-servlet.xml
中保留什么样的bean > ?为什么我们两者都需要?我应该将所有内容保留在 applicationContext.xml
中并删除 spring-ws-servlet.xml
吗?
如果我两者都有,那么我应该将其中一个导入到另一个中吗?请帮助我。
谢谢!
最佳答案
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/applicationContext.xml</param-value>
</context-param>
您必须定义一个监听器,如下所示:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
这个ContextLoaderListener
监听器负责启动和停止 Spring root ApplicationContext
接口(interface),加载applicationContext.xml
中定义的bean 。它通过查看 <context-param>
找到要使用的配置。标签 contextConfigLocation
.
<servlet>
<servlet-name>spring-ws</servlet-name>
<servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring-ws-servlet.xml</param-value>
</init-param>
</servlet>
ApplicationContext
创建者 DispatcherServlet
是 root ApplicationContext
的子项界面。 通常,Spring MVC 特定的组件
在DispatcherServlet的ApplicationContext接口(interface)中初始化,而
其余的由 ContextLoaderListener
加载。
child ApplicationContext
中的 bean (例如由DispatcherServlet创建的bean)可以引用其父ApplicationContext的bean(例如由ContextLoaderListener创建的bean)。然而,parent ApplicationContext
无法引用child ApplicationContext
的bean .
关于java - spring配置文件的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19543078/