java - spring配置文件的关系?

标签 java spring java-ee-6 spring-ioc

我使用的是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创建者 DispatcherServletroot 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/

相关文章:

java - 我将如何向 Activemq 发送消息

java - 如何让 IntelliJ 调试器允许我的应用程序的关闭 Hook 运行?

java - 动态添加 TextView 到布局

java - 线程 "main"中的异常 org.openqa.selenium.WebDriverException : Timed out waiting 45 seconds for Firefox to start after geckodriver upgradation

java - DispatchServlet 是否会在过滤器之前拦截 HTTP 请求?

java - ContextRefreshEvent 的 Spring ApplicationListener。如何每个层次结构只调用一次?

java - 让主线程等待,直到新的单线程在java中完全执行

java - em.Persist(book) 不会更新实体

java - Android - OpenCV 模板与阈值匹配

保存对象/Hibernate 时出现 java.lang.NullPointerException