Я просто изучаю возможности каркасов DI, и я сделал для этого какой-то глупый пример. У меня есть простой сервис.CDI и несколько экземпляров
public class Service implements ServiceI {
private Source source;
private Translator translator;
@Inject
public Service(Translator translator, Source source) {
this.translator = translator;
this.source = source;
}
Я хочу иметь два экземпляра этой службы тот, который инициируется с TranslatorA и SourceA и вторым, который будет впрыскиваемым с различными значениями.
Как можно иметь два экземпляра с различными компонентами, введенными внутри?
Меня интересуют способы достижения этого как в Guice, так и в Weld CDI.
До сих пор я создал несколько модулей Guice и указывал bind-to в нем, как мне нравится. Но я не совсем уверен, правильно ли это. И это полностью не удается в CDI, поскольку нет модулей.
Я считаю, что наличие нескольких экземпляров должно быть довольно распространенным случаем или я ошибаюсь?
Весной вы можете использовать методы @Bean и вручную устанавливать зависимости, но если я буду использовать new в CDI, bean не будет управляться, не так ли? – Zveratko