Возможно ли связать экземпляр Named на основе класса-оболочки? Например: в приведенном ниже примере классы A и B будут инсталлированы в экземпляр DataStore. Тем не менее, мне нужно иметь первичный магазин как StoreA и вторичный магазин StoreB в области/контексте класса A, но в качестве хранилища StoreC и вторичного хранилища как StoreD в области/контексте класса B. Как это можно достичь?Guice - связывать разные экземпляры на основе класса-окружения
class A {
@Inject
public A(DataStore dataStore) {
...
}
}
class B {
@Inject
public B(DataStore dataStore) {
...
}
}
class DataStore {
@Inject
public A(@Named("primary") Store primaryStore, @Named("secondary") Store store) {
...
}
}
bind(Store.class).annotatedWith(Names.named("primary")).to(StoreA.class);//for class A
bind(Store.class).annotatedWith(Names.named("secondary")).to(StoreB.class);//for class A
bind(Store.class).annotatedWith(Names.named("primary")).to(StoreC.class);//for class B
bind(Store.class).annotatedWith(Names.named("secondary")).to(StoreD.class);//for class B