1

在 Seam 2 中,我们有一个 Component.getInstance(someClass),它可以用于静态方法来实例化一个 bean。

我如何在 Seam 3 中使用这种方法?

前任:

public static someMethod()
{
     SomeClass sc = (SomeClass.class) Component.getInstance(SomeClass.class);
     ...
}

以及如何在静态方法中获取消息?

更新:

我用了

BeanManager beanManager = new BeanManagerLocator().getBeanManager();
Bean<?> bean = beanManager.resolve(beanManager.getBeans(SomeClass.class));
SomeClass sc = (SomeClass) beanManager.getReference(bean, SomeClass.class, beanManager.createCreationalContext(bean));

一切正常。但是所有这些代码都必须编写。

4

2 回答 2

1

您可以在BeanManager中查询CDI bean 的实例。这应该在任何情况下都有效,不管是静态的还是非静态的。顺便说一句,它不是特定于 Seam 3 的

于 2012-06-12T19:29:12.013 回答
0

在这里http://javalabor.blogspot.in/2011/08/our-seam-2-to-jee-6-replacement-list.html你可以找到解决方案。

于 2013-01-16T06:08:14.987 回答