2015-06-08 17 views
5

Mam klasy, który chcę być fasoliCDI: ręczne tworzenie fasola z argumentów konstruktora

public class SomeBean{ 
    public SomeBean(){ 
    //default constructor 
    } 
    public SomeBean(String someStr){ 
    //constructor with arguments. 
    } 
} 

W celu stworzenia ręcznie CDI fasoli Mam następujące

Bean<?> bean = (Bean<?>) beanManager.resolve(beanManager.getBeans(SomeBean.class)); 
SomeBean someBean =(SomeBean) beanManager.getReference(bean, bean.getBeanClass(), beanManager.createCreationalContext(bean)); 

jednak powyżej metoda utworzy instancję SomeBean z domyślnym konstruktorem. Jak mogę utworzyć komponent bean i przekazać argument String do construcot? P.S. CDI - WELD

Odpowiedz

0

Standardowym sposobem definiowania fasoli z określonymi argumentami konstruktora jest zastosowanie metody producenta , np..

@Produces @ApplicationScoped @MyQualifier 
public SomeBean myBean() { 
    return new SomeBean("foo"); 
} 

Kod aplikacji nie powinien normalnie trzeba używać BeanManager, chyba że chcesz stworzyć rozszerzenie CDI.

+1

Wiem o produkowaniu i rozumieniu Ciebie. Ale potrzebuję do mojego ręcznego tworzenia sytuacji. –

Powiązane problemy