当用同一个父对象定义另一个bean时,我尝试获得一个具有primary属性的bean。 我有2个bean,BeanA和BeanB
package com.test.test.bean;
public class BeanA extends ABean {
@Override
public String getconfig() {
return "BeanA";
}
}
package com.test.test.bean;
public class BeanB extends ABean {
@Override
public String getconfig() {
return "BeanB";
}
}
这两个bean具有相同的父ABean。
当我这样定义它们
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">
<bean id="com.test.test.bean.BeanA" class="com.test.test.bean.BeanA" primary="false"/>
<bean id="com.test.test.bean.BeanB" class="com.test.test.bean.BeanB" primary="true"/>
</beans>
我打电话给他们
package com.test.test;
import java.io.FileNotFoundException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClasspathXmlApplicationContext;
import com.test.test.bean.ABean;
import com.test.test.bean.BeanA;
public class App {
public static void main(String[] args) throws FileNotFoundException {
ApplicationContext context = new ClasspathXmlApplicationContext("Spring-beantest.xml");
ABean bean = context.getBean(ABean.class);
System.out.println(bean.getconfig());
}
}
我收到错误消息:
未定义[com.test.test.bean.ABean]类型的唯一bean:期望的单个bean,但找到2:com.test.test.bean.BeanA,com.test.test.bean。 BeanB
所以问题是为什么主属性不能启用仅选择com.test.test.bean.BeanB bean的功能?