Являются ли CDI.current().select().get() и BeanManager.getReference() функционально эквивалентными?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Являются ли CDI.current().select().get() и BeanManager.getReference() функционально эквивалентными?

Сообщение Anonymous »

В контексте JEE/CDI я обычно использую статическую функцию CDI, когда мне нужно статически получить управляемый компонент CDI из метода. Например:

Код: Выделить всё

MyBean myBean = CDI.current().select( MyBean.class ).get()
Однако, насколько я могу судить, другой эквивалентный способ добиться этого — использовать BeanManager:

Код: Выделить всё

BeanManger bm = new InitialContext().lookup( "java:comp/BeanManager" );
Bean bean = bm.resolve(bm.getBeans( MyBean.class ) );
CreationalContext context = bm.createCreationalContext(bean);
MyBean myBean = bm.getReference(bean, cls, context);
Итак, помимо того, что с использованием метода CDI.current() нужно писать значительно меньше кода, какие различия есть в его использовании? Казалось бы, возврат к использованию BeanManager — гораздо более сложная (и потенциально подверженная ошибкам?) методология. С функциональной точки зрения, есть ли какие-либо недостатки в использовании вместо этого метода CDI.current()? Работает ли CDI...select() только для bean-компонента @ApplicationScope? Или я могу использовать и другие bean-компоненты с ограниченной областью действия (например: @Dependent)?

Я помню, что читал что-то о потенциальных утечках памяти с использованием метода CDI, но не понимаю, как и почему это могло быть так.

Подробнее здесь: https://stackoverflow.com/questions/530 ... onally-equ
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»