This one gives you a new instance of a client proxy. The client proxy will forward method calls to the current contextual instance of a particular context. You can therefore obtain the proxy once and keep it and the method calls will be invoked on the current instance (e.g. current request). It is also useful if the contextual instance is not serializable - the client proxy will be and will reconnect after you deserialize it.Hi All,
Can you please explain me this one, I have confusion which one is better.
1.
Bean<MyBean> bean = (Bean<MyBean>) beanManager.resolve(beanManager.getBeans(MyBean.class));MyBean= (MyBean) beanManager.getReference(bean, bean.getBeanClass(), beanManager.createCreationalContext(bean));
This obtains the target instance without a client proxy. You may still see a Weld's proxy in the class name but that is an enhanced subclass that provides interception and decoration. If the bean is not intercepted nor decorated this will be a plain instance of the given bean.
2.
Bean<MyBean> bean = (Bean<MyBean>) beanManager.resolve(beanManager.getBeans(MyBean.class));MyBean bean = beanManager.getContext(bean.getScope()).get(bean, beanManager.createCreationalContext(bean));
As i know BeanManager.getReference() always creates a whole new proxy instance, while the Context.get() reuses an existing proxy instance if already created before.
Is BeanManager.getReference() is more use full than Context.get() ??
Thanks
Muhammad Asif Bhutto
_______________________________________________ weld-dev mailing list weld-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-dev