Spring XML初始化顺序和Bean重写

时间:2013-06-18 02:29:37

标签: spring initialization applicationcontext

我试图了解使用spring的网络系统,我无法调试它。 现在我对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文件的初始化顺序?

1 个答案:

答案 0 :(得分:0)

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

1.不同路径中文件的初始化顺序取决于写入的顺序   类路径*:/ COM / pathA / * /的applicationContext .XML   在我的问题上,pathA中的[applicationContext * .xml]文件将首先初始化,然后在pathB中初始化。

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

例如,如果在pathA中有[applicatinContextOne.xml]和[applicationContextTwo.xml],则首先初始化[applicatinContextOne.xml],然后[applicationContextTwo.xml]。

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