2015-06-25 2 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, а не по типу, который находится в подклассе, ввод defaultDB с использованием adsConfigDB или adsBizDateD B. Есть ли способ сделать это с помощью весенних аннотаций? Я уже пробовал Autwired или Resource с конструктором, который не работает. Кстати, я уже знаю, что это можно сделать с помощью XML.

ответ

1

@Qualifier аннотация - Эта аннотация используется для предотвращения конфликтов при составлении бина, и нам необходимо указать имя компонента, которое будет использоваться для автоустановки. Таким образом, мы можем избежать проблем, когда для одного и того же типа определены несколько компонентов. Эта аннотация обычно работает с аннотацией @Autowired. Для конструкторов с несколькими аргументами мы можем использовать эту аннотацию с именами аргументов в методе.

Ваш код будет выглядеть следующим образом ..

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

Я не думаю, что вы понимаете вопрос. Я хочу ввести его в подкласс, а не в суперкласс, который определяет свойство. Дело в том, что я не могу редактировать суперкласс – TonyArcher

Смежные вопросы