java - 如何使用spring注解注入(inject)父类属性

标签 java spring

父类是这样的:

public class BaseDAO{
    private DBRoute defaultDB;

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

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

我已经像下面这样创建了 bean:

<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>

我想通过 byName 在子类中注入(inject)父类(super class)属性 defaultDB,而不是 byType,它在子类中使用 adsConfigDB 注入(inject) defaultDB>adsBizDateDB。有没有办法用 Spring 注释来做到这一点?我已经尝试过 Autowired 或 Resource with constructor 但不起作用。顺便说一句,我已经知道这可以使用 XML 来完成。

最佳答案

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

你的代码将是这样的..

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

关于java - 如何使用spring注解注入(inject)父类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31049468/

相关文章:

Spring Websocket STOMP 负载测试

java - 将 clojure vec 传递给 POSTGRES IN 语句(?)

java - 获取 Spring bean 的真实 Class 对象

java - 如何为 sql server 配置 hibernate 配置文件

java - BouncyCaSTLe - 从 X509Certificate 对象创建 Store

java - 带接口(interface)的 Hibernate 一对一映射。我需要建议

java - GWT 中的 "Development mode is loading..."和 "Waiting for launch URLs"

java - CXF 中的 SOAP 和休息是否可以有相同的类别

java - 使用 new 关键字创建的 Spring bean (@Component) 中的 Autowiring

java - cron 表达式在指定时间运行作业?