gpt4 book ai didi

java - 除非明确注释,否则不会发现CDI bean

转载 作者:行者123 更新时间:2023-12-01 04:36:28 24 4
gpt4 key购买 nike

当bean是POJO时,如果Weld说“类型Foo的依赖关系未满足”,那是什么意思,但是,只要在顶部添加@Dependent,一切就可以了吗?
我记得它曾经在没有指定范围的情况下可以正常工作。我想我弄坏了什么。
规格说:

托管bean是由Java类(称为其bean类)实现的。如果任何其他Java EE技术规范(例如JavaServer Faces技术规范)将顶级Java类定义为托管bean,或者满足以下所有条件,则该顶级Java类为托管bean。

它不是非静态内部类。

它是一个具体的类或带有@Decorator注释。

它未使用EJB组件定义的注释进行注释,也未在ejb-jar.xml中声明为EJB bean类。

它具有适当的构造函数。即,是以下情况之一。

该类具有不带参数的构造函数。

该类声明一个带有@Inject注释的构造函数。


定义托管Bean不需要任何特殊的声明,例如注释。

最佳答案

听起来好像您已经习惯了CDI 1.0,但现在却被CDI 1.1中引入的隐式bean档案所混淆。

beans.xml现在是可选的,隐式bean归档是默认值,这意味着仅当类具有定义@Dependent@RequestScoped等的注释的bean时,该类才是bean的候选对象。

关于java - 除非明确注释,否则不会发现CDI bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29534355/

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