Чтобы получить действительно управляемый компонент, вы позволяете CDI управлять жизненным циклом, включая создание.Есть исключения, но давайте не будем вдаваться в подробности.
В вашем случае объект, созданный с помощью new
, просто не будет управляемым компонентом, и CDI не будет об этом знать (если только это не результаткакой-то метод продюсера или тому подобное).Вы должны выяснить, почему он вообще создается, а не просто вводить существующий?
То же самое и для AppllicationScoped и RequestScoped?!
Для каждой точки вводаКомпонент с нормальной областью действия CDI изучит базовое «хранилище компонентов» и выяснит, был ли созданный вами компонент уже создан и сохранен там.Если это так, он просто возвращает вам это (или, ну, прокси к нему).Если нет, он создаст новый и сохранит его там для будущих ссылок.
Таким образом, короткий ответ: у вас не будет двух экземпляров одного и того же компонента с нормальной областью действия, созданного CDI.