У меня есть компонент пользовательского интерфейса, который будет использоваться в нескольких модулях пользовательского интерфейса в приложении.
Я хотел бы отметить, что компонент пользовательского интерфейса, который должен быть внедрен в несколько других классов в одном модуле пользовательского интерфейса, должен быть одноэлементным, но не одноэлементным для всего приложения. Так что для каждого модуля пользовательского интерфейса используется компонент пользовательского интерфейса, используется один и только один экземпляр компонента пользовательского интерфейса.
Я не смог найти прямого решения для этого из документа Guice. Так что я думаю, может быть, я смогу использовать аннотацию, чтобы различать эти экземпляры?
Скажем, в модуле A я аннотирую все внедрения компонента пользовательского интерфейса с помощью Named("ModuleA")
; и в модуле B, с Named("ModulaB")
. и в конфигурации я попытался использовать что-то вроде:
this.bind(UIComponentA.class)
.annotatedWith(Names.named("ModulaA"))
.to(UIComponentAImpl.class).in(Singleton.class);
this.bind(UIComponentA.class)
.annotatedWith(Names.named("ModulaB"))
.to(UIComponentAImpl.class).in(Singleton.class);
Поскольку UICompoenetAImpl также необходимо ввести, поэтому я не мог просто создать экземпляр там. Совершенно не уверен, что это работает.
И мне интересно, каков стандартный способ сделать это?