Как использовать Spring Constructor DI в классах, реализующих интерфейс - PullRequest
0 голосов
/ 27 мая 2019

Итак, я хочу добиться чего-то вроде этого:

@Component
public class ComponentA {


    public void doThis(){};     

}

@Component
public class ComponentB {

    public void doThat(){};

}

public interface MyInterface {
    void doSomething();
}

public class MyInterfaceImplA implements MyInterface {

    private final ComponentA componentA;

    @Inject
    public MyInterfaceImplA(ComponentA componentA){
        this.componentA = componentA;
    }

    public void doSomething(){
        componentA.doThis();
    }
}

public class MyInterfaceImplB implements MyInterface {

    private final ComponentB componentB;

    @Inject
    public MyInterfaceImplB(ComponentB componentB) {
        this.componentB = componentB;
    }

    public void doSomething() {
        componentB.doThat();
    }
}

То, что я в основном хочу, это внедрить разные компоненты в разные классы, реализующие один и тот же интерфейс.

У меня вопрос: есть ли хороший способ настроить эту архитектуру таким или иным способом? Или есть способ добиться этого лучше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...