java - CDI 注入(inject)现有对象

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

假设我有以下类(class):

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 注释,注入(inject)当前可用的所有匹配服务?这对于对象不是单例并且不是由 CDI 创建的情况是必需的。在上面假设的示例中,对象是通过反序列化创建的。

最佳答案

我认为标准 CDI 不可能实现这一点。但如果您使用 DeltaSpike 扩展,则可以使用 BeanProvider .injectFields ...做你想做的事。请注意,当然您的 Pojo 不受 CDI 管理(作用域),仅解决了字段注入(inject)...

关于java - CDI 注入(inject)现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24750967/

相关文章:

c# - Java XML XPath 解析器到 C#

java - 以下 Java 代码片段的含义

JSF Composite 组件的性能

java-ee-6 - CDI 注入(inject)如何在 MDB 和 @Scheduled bean 中工作?

java - 如何从用户输入的短语中输出特定字母

java - 将 null 转换为 Enum.NULL

java - 无法针对情况编写 Antlr3 规则

java - 调用 JAI.create 时出现 JAI ClassNotFound 异常

java - Hibernate - 无法从表中读取值

java - 需要查询来检查数据库中是否已存在电子邮件(Java Persistence API)