2015-06-25 131 views
5

父类是这样的:如何注入父类的属性与春天注释

public class BaseDAO{ 
    private DBRoute defaultDB; 

    public DBRoute getDefaultDB() 
    { 
     return this.defaultDB; 
    } 

    public void setDefaultDB(DBRoute defaultDB) 
    { 
     this.defaultDB = defaultDB; 
    } 
} 

我有一个像下面创建豆类:

<bean id="adsConfigDB" class="net.flyingfat.common.dbroute.config.DBRoute"> 
    <constructor-arg value="adsConfig" /> 
</bean> 

<bean id="adsBizDateDB" class="net.flyingfat.common.dbroute.config.DBRoute"> 
    <constructor-arg value="adsBizDate" /> 
</bean> 

我要注入超产权defaultDB在子类中通过byName,而不是byType,它在子类中注入defaultDB使用adsConfigDBadsBizDateD B。有什么办法可以用Spring注释来做到这一点?我已经试过Autowired或资源与构造不起作用。顺便说一句,我已经知道这可以使用XML来完成。

回答

1

@Qualifier注释 - 此注释用于避免bean映射中的冲突,我们需要提供将用于自动装配的bean名称。这样我们可以避免多个bean被定义为相同类型的问题。此注释通常与@Autowired注释一起使用。对于具有多个参数的构造函数,我们可以使用此注释和方法中的参数名称。

您的代码将是这样的..

@Autowired 
@Qualifier("adsConfig") 
private DBRoute defaultDB; 
+0

我想你不明白的问题。我想在子类中注入它,而不是在定义属性的超类中。事实是我无法编辑超类 – TonyArcher