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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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