так что не работает как есть :(

оложим, у меня есть класс с инъекциями:

class MyBean {

    @Inject
    Helper helper;

    // all sorts of data
}

и этот класс был создан таким образом, что контейнер CDI не знает об этом, как отражение, сериализация илиnew, В этом случаеhelper являетсяnull потому что CDI не инициализировал его для нас.

Есть ли способ сказать CDI «активировать» бин или, по крайней мере, его инъекцию? например, как если бы он был создан сInstance<MyBean>#get?

Прямо сейчас у меня есть взлом, где я делаю следующее:

class SomeClass {

    @Inject
    Instance<MyBean> beanCreator;

    void activateBean() {
        MyBean mybean = ... // reflection/serialization/new
        MyBean realBean = beanCreator.get();
        Helper proxy = realBean.getHelper();
        mybean.setHelper(proxy);
        beanCreator.destroy(realBean);
    }
}

Это выглядит довольно плохо, но это работает для всего, что я тестировал. Это просто показывает, какой конечный результат я хочу получить.

Использование Wildfly 10.1, если это важно.

Ответы на вопрос(1)

Ваш ответ на вопрос