能否帮我解决在尝试使用Spring时遇到的问题呢?
我这里有两个上下文,我们称它们为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中使用,我假设这个名称不会被使用,而是使用springB.xml的name3)。
谢谢!
附注:Spring 2.5 Eclipse 3.5
main
方法,而不是描述它们的区别。 - skaffman