CDIには、CreationalContext
とBeanManager.getReference
で分かりません。BeanManager.getReferenceで使用されるCreationalContextを破棄する必要はありますか?
私はWildfly 8.2.1でCDI 1.2を使用しています。ここに問題があります。
私はサードパーティのライブラリによって作成されたCDI Beanを持っています。
豆:
public class ProducedBean
{
private long m_id;
public long getId()
{
return m_id;
}
}
そしてプロデューサー(これは一例です):CDIカスタムスコープのコンテキストで
@Produces
public ProducedBean getBean()
{
return new ProducedBean();
}
、私はこのBeanにアクセスする必要があります。だから私は使用BeanManager
:
final Set<Bean<?>> beans = beanManager.getBeans(ProducedBean.class);
final Bean<?> bean = beanManager.resolve(beans);
CreationalContext<JobContext> creationalContext = beanManager.createCreationalContext(null);
final ProducedBean producedBean = (ProducedBean) beanManager.getReference(bean, ProducedBean.class, creationalContext);
// Get id of ProducedBean
// Then release creationalContext?
私はこのコードに関する2つの質問があります。
1°)私はProducedBean
作成後creationalContext
を破壊する必要がありますか?私はjavadocを読んだが、それは私には分かりません。私はちょうどProducedBean
のIDを取得したい。
2°)beanManager.createCreationalContext(null)
またはbeanManager.createCreationalContext(bean)
を使用する方が良いですか?私の場合、私はちょうどProducedBean
のIDを読んでいます。
ありがとうございました。
WildFly 10では、CDI 1.2を使用しています(デフォルト)。 – Siliarus
Actullyそれはwildfly 8です、私は私のポストを修正します。間違いを知らせてくれてありがとう。 – Rouliboy