簡體   English   中英

Spring應用程序中的*-context.xml和applicationContext.xml文件的處理

[英]Processing of *-context.xml and applicationContext.xml files in Spring application

我在 hibernate 上使用 Spring Web MVC 作為前端的事務(所有注釋驅動)。 我設置 web.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<display-name>wdman</display-name>

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>wdman</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>wdman</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<!-- Disables Servlet Container welcome file handling.
     Needed for compatibility with Servlet 3.0 and Tomcat 7.0 -->
<welcome-file-list>
    <welcome-file></welcome-file>
</welcome-file-list>    

</web-app>

我不明白像<tx:annotation-driven/>這樣的選項是如何從根上下文(在這種情況下定義的 applicationContext.xml)繼承到 *-servlet.xml 上下文的。 function 似乎沒有。 我在這兩個文件中都進行了component-scan ,以使應用程序正常工作。 那樣行嗎? 組件不是重復的嗎?

您能否幫助或指出一些描述這些上下文如何合並的簡明文檔?

我不明白像<tx:annotation-driven/>這樣的選項是如何從根上下文(在這種情況下定義的applicationContext.xml )到*-servlet.xml上下文的選項

他們不是。 這些設置是上下文的本地設置。

我在這兩個文件中都進行了component-scan ,以使應用程序正常工作。 那樣行嗎? 組件不是重復的嗎?

如果您在每個上下文中都有相同component-scan配置,那么是的,組件將被復制。 您可以指定掃描以僅實例化每個上下文所需的組件。

但是,在applicationContext.xml中定義的 bean 對子上下文可見的,因此您應該能夠將組件掃描保留在父上下文中,並將其排除在子上下文之外。 根據經驗,只有 MVC 特定的東西需要在 servlet 上下文中聲明,並且這些 bean 可以引用父級中定義的 bean。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM