gpt4 book ai didi

scope - 在 CDI Weld 中查看范围

转载 作者:行者123 更新时间:2023-12-04 01:43:13 25 4
gpt4 key购买 nike

我想使用 @ViewScoped - 我的应用程序中某些网页的支持 bean 的范围。我还使用 CDI 将依赖项注入(inject)支持 bean。

但是,当我使用像这样注释的支持 bean

@ManagedBean
@ViewScoped

@Inject
someDependency (...)
@Inject注释不会注入(inject)任何东西,我得到一个 NullPointerException一旦我访问依赖项。

然而,当我用
@Named
@ViewScoped


@Inject
someDependency (...)

注入(inject)工作正常,但现在 @ViewScoped被忽略,因为它不是 CDI/Weld 的一部分。

如何使用 @ViewScoped与 CDI Weld 一起?

最佳答案

问题是您将简单的托管 bean 与 CDI 托管 bean 混合在一起,它们不能一起工作。 Managed Beans 是一个简单的框架,用于定义 bean 及其注入(inject)的 bean。 CDI 是一个独立的野兽,具有各种额外的优点。

但是,托管 bean 不能使用 CDI 注入(inject)点,但可以使用 ViewScope,而 CDI bean 使用 CDI 注入(inject)点和所有好东西,但 ViewScope 不可用。

要解决此问题,您必须使用 CDI 并使用 Seam-Faces 库来使用 View 范围,或者放弃 CDI 并坚持使用简单的托管 bean,这是一个简单的实现。

干杯,

安迪

关于scope - 在 CDI Weld 中查看范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4865047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com