在我的 Spring-Module.xml 中有两个 bean:
<bean id="two_num" class="main.java.com.shen.Generator">
<property name="length" value="8" />
<property name="categories" value="3" />
...
</bean>
<bean id="six_num" class="main.java.com.shen.Generator">
<property name="length" value="6" />
<property name="categories" value="1" />
<property name="numeric" value="numeric" />
...
</bean>
我像这样实例化我的类:
ApplicationContext context = new ClassPathXmlApplicationContext("Spring-Module.xml");
Generator obj = (Generator) context.getBean("two_num");
由于某些原因,尽管我明确表示我想要 bean“two_num”,但 java 总是实例化我的第二个 bean。如果我要颠倒顺序,并且在“two_num”之上有“six_num”的bean,它将得到底部的bean。:| 这是怎么回事?我很混乱。我选择特定 bean 的方法是错误的吗?
编辑:再添加一个 bean 后,这是我运行程序时得到的:
信息:在 org.springframework.beans.factory.support.DefaultListableBeanFactory@e949f69 中预实例化单例:定义 bean [two_num,six_num,four_num];工厂层次结构的根
正如预期的那样,当我在我的类中调用 print 方法时,我可以看到当前对象是用four_num中指定的信息实例化的,而不是“two_num”