我有一堂想当 bean 的课
public class SomeBean{
public SomeBean(){
//default constructor
}
public SomeBean(String someStr){
//constructor with arguments.
}
}
为了手动创建CDI bean,请执行以下操作
Bean<?> bean = (Bean<?>) beanManager.resolve(beanManager.getBeans(SomeBean.class));
SomeBean someBean =(SomeBean) beanManager.getReference(bean, bean.getBeanClass(), beanManager.createCreationalContext(bean));
但是,上述方法将使用默认构造函数创建SomeBean实例。如何创建bean并将String参数传递给construcot?
P.S. CDI- Weld
最佳答案
使用给定的构造函数参数定义bean的标准方法是通过生产者方法,例如
@Produces @ApplicationScoped @MyQualifier
public SomeBean myBean() {
return new SomeBean("foo");
}
除非您要创建CDI扩展名,否则应用程序代码通常不必使用
BeanManager
。