Spring XML主bean

当用同一个父对象定义另一个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的功能?

cuterose 回答:Spring XML主bean

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3013633.html

大家都在问