Spring @autowire с наследствомJAVA

Программисты JAVA общаются здесь
Anonymous
Spring @autowire с наследством

Сообщение Anonymous »

Я новичок в весне и хотел всю вашу помощь. Я столкнулся с исключением «ожидаемый единый матч, но нашел два». Я искал решение и думаю, понял решение. Большинство решений предлагают использовать @qualifier для разрешения этого исключения. Однако я не думаю, что это решит мою проблему. Ниже приведена иерархия моего класса: < /p>

Код: Выделить всё

abstract class A{

@Autowired
Client client;

protected void doSomething(){
/* ....some code .... */
client.someStuff();
/* ....some code .... */
}

/* ..... few abstract methods ......... */
}

class B extends A{
public void action(){ doSomething() }
}

class C extends A{
public void action(){ doSomething() }
}
< /code>

my .xml confirugration file < /p>

    














< /code>

Таким образом, в основном у меня есть абстрактный класс, который имеет метод, который будет общим для обоих подклассов. Этот метод использует ссылку на клиент, но во время выполнения будет использовать другой объект. dosomething () < /code> не переопределен в подклассах. Я не думаю, что могу использовать @qualifier, потому что @qualifier требует указания имени бобов из .xml в качестве параметра, но поскольку атрибут «клиента» является общим, я не могу использовать только одно имя боба. < /p>

может кто -нибудь, пожалуйста, поможет объяснить, есть ли способ обойти. Дублировать метод dosomething () 
побеждает всю цель наследования и вызовет дублированный код в разных классах. Я не могу иметь атрибут клиента в подклассах, поскольку он станет неизвестным DOSOmething () Метод во время компиляции.

Любые идеи/предложения/решения будут полезны.

>

Подробнее здесь: https://stackoverflow.com/questions/241 ... nheritance

Вернуться в «JAVA»