0

我正在尝试使用 spring 来理解 web 系统,但我无法调试它。现在我对 XML 初始化的顺序感到困惑。

支持 我有一个 web.xml,它是这样的:

<context-param>
    <param-name>contextConfigLocation</param-name>  
        <param-value>   
            classpath*:/com/pathA/**/applicationContext*.xml,classpath*:/com/pathB/**/applicationContext*.xml     
    </param-value>  
</context-param>

在 /com/pathA 我有一些 xml 文件,它们定义了一些具有相同名称的 bean。在 /com/pathB 中,我还有一些 xml 文件,它们定义了与 com/pathA 的 xml 文件中同名的 bean。

我知道spring框架默认会使用最后一个bean定义。但是我找不到xml文件初始化的顺序。

这是bean的定义:

/com/pathA/applicationContextOne.xml

<bean name="/testBean" class="com.TestActionOne">
</bean>

/com/pathA/applicationContextTwo.xml

<bean name="/testBean" class="com.TestActionTwo">
</bean>

/com/pathB/applicationContextThree.xml

<bean name="/testBean" class="com.TestActionThree">
</bean>

谁能告诉我 /com/pathA/ 中不同 xml 文件的初始化顺序

以及 com/pathA/ 和 com/pathB 之间的 xml 文件的初始化顺序?

4

1 回答 1

0

我在本地 pc(Windows 和 AIX)中编写了一些示例来模拟初始化顺序,我在下面找到了结果。

1.不同路径下文件的初始化顺序取决于我的问题上classpath*:/com/pathA/* /applicationContext .xml中写的顺序,pathA中的[applicationContext*.xml]文件会先初始化再初始化路径 B.

2.同一路径下文件的初始化顺序是文件名的顺序

例如,如果pathA中有[applicinContextOne.xml]和[applicationContextTwo.xml],那么[applicinContextOne.xml]会先被初始化,然后是[applicationContextTwo.xml]。

我在 Windows 和 AIX 下都试过了,它返回了相同的结果。希望这会有所帮助。

于 2013-06-19T07:44:50.790 回答