CDI注入现有对象

时间:2014-07-15 06:09:11

标签: java java-ee java-ee-6 cdi java-ee-7

假设我有以下课程:

public class MyRequestPayload implements RequestPayload {

    protected MyRequestPayload() {}

    @Override
    public ResponsePayload process() {
        String result = someService.doSomething(foo, bar);
        return new MyResponsePayload(result);
    }

    public final String foo;

    public final Integer bar;

    @Inject
    private SomeService someService;
}

我可以调用哪些CDI服务来处理此类实例上的所有@Inject注释,注入当前可用的所有匹配服务?对于不是单例且不是由CDI创建的对象的情况,这是必需的。在上面的假设示例中,对象是通过反序列化创建的。

1 个答案:

答案 0 :(得分:1)

我认为标准CDI不可能。但是如果你使用DeltaSpike扩展,你可以使用BeanProvider .injectionFields ...做你想要的。请注意,当然您的Pojo不受CDI管理(作用域),只有字段注入被解析...