当前位置: 首页 > 知识库问答 >
问题:

动态实例化CDIBeans或注入非CDIBeans

高迪
2023-03-14

我是CDI的新手,希望有人能帮助我。

好吧,让我解释一下问题:
我实现了一个由JSF EL调用的主bean。这个bean处理对象列表。想象一下类似于List的东西

@Produces
public Car createCar() {
     return new Car();
}

但这也不成功:我认为这个带注释的方法会返回car的代理。但什么也没发生。car内部的注入字段仍然为null,其@PostConstruct方法也从未被调用。

你能帮我吗?将当前上下文(会话)注入我的服务类的正确方法是什么?

谢谢!:-)


共有1个答案

赏航
2023-03-14

所以,我自己找到了解决办法!:-)

我将服务类注释为@ApplicationScoped,并注入我需要的任何内容。Car类使用该服务,但本身不是bean。为此,我在恢复对象时使用DeltaSpike进行注射:

public Car() {
  BeanProvider.injectFields(this);
}

希望我将来能帮助别人!:-)

 类似资料:
  • 我有一个带有guice但没有spring的应用程序。我有: 我有两个实现: 我希望能够将缓存服务注入所有其他服务,并且希望在缓存服务中注入正常服务。问题是,当我想在其他类中注入服务接口时,实现是随机选择的。有没有办法解决这个问题?

  • 问题内容: 运行期间是否可以注入示波器或控制器?或任何其他建议将服务动态注入控制器? 提前致谢 问题答案: 可以使用$ injector 将服务动态(按名称)注入到控制器中。能够通过控制器参数注入服务只是Angular提供的一种便利。在后台,Angular使用$ injector来检索对象实例。但是我们也可以自己使用$ injector。 小提琴。

  • 本文向大家介绍Android 动态注册监听网络变化实例详解,包括了Android 动态注册监听网络变化实例详解的使用技巧和注意事项,需要的朋友参考一下 Android 动态注册监听网络变化实例详解 新建一个BroadcastTest项目,然后修改MainActivity中的代码,如下: 动态注册的广播接收器一定要取消注册才行,在onDestroy()方法中通过调用unregisterReceive

  • 我有一个Spring集成流项目,它公开了一个Rest网关,在接收到Rest POST请求后,它会执行一些较小的逻辑。基于一些有效载荷参数,我想动态激活另一个Spring集成流,并将消息路由到该流中的指定通道,我可以在基于有效载荷的主流中发现该通道。子流将把响应消息放在主流中定义的指定通道中。 我如何才能实现这一点。

  • 我对CDI bean的定义有一个疑问: CDIBean是指使用注释注入的bean,还是指在它们内部使用的bean?

  • 我有以下代码: 到目前为止,代码还可以,但我无法在主方法中实例化'in',比如,因为它显示