您可以指导我在试验Spring时遇到的这个问题。导入另一个弹簧上下文时的Spring bean名称
我在这里有2个上下文。让我们为它们命名springA.xml和springB.xml
springA.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="springB.xml" />
<bean name="name2" class="java.lang.String"/>
</beans>
springB.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="name2,name3" class="java.lang.String"/>
</beans>
springC.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="name3,name2" class="java.lang.String"/>
</beans>
这是我的Java文件。
public static void main(String[] args) {
BeanFactory factory = new XmlBeanFactory(new ClassPathResource("springA.xml"));
Object obj1 = factory.getBean("name2");
Object obj2 = factory.getBean("name3");
System.out.println(obj1.getClass().getName() + " " + obj2.getClass().getName());
}
而结果,我得到一个“java.lang.String中java.lang.String中”。如果我改变的 位置名称“NAME2,NAME3”到“NAME3,NAME2”(springC.xml),我得到一个“java.lang.Object继承java.lang.Object继承”。
我只是困惑,为什么结果是这样的。我期待该函数将为name2返回java.lang.String,为name3返回java.lang.Object(因为name2已经在springA.xml中使用,我假设这个名字不会被使用,而是使用name3 for springB.xml)
谢谢!
PS: Spring 2.5的 的Eclipse 3.5
你是什么意思“改变位置”?请向我们展示两种不同的“主要”方法,而不是描述差异。 – skaffman 2010-10-04 09:40:16
我加了springC.xml。我希望这可以帮助你更多地理解问题。 – qaxi 2010-10-04 09:47:30
不是,不。 – skaffman 2010-10-04 10:08:22