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

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

姜泰宁
2023-03-14

当bean是POJO时,Weld说“对类型Foo的不满意的依赖关系”是什么意思,但是,只要我在顶部添加< code>@Dependent,一切都工作正常?我记得以前不用指定作用域也能很好的工作。我想我打碎了什么东西。

说明书上说:

托管 Bean 由 Java 类实现,该类称为其 Bean 类。如果顶级 Java 类被任何其他 Java EE 技术规范(如 Java 服务器人脸技术规范)定义为受管 Bean,或者如果它满足以下所有条件,则该类就是受管 Bean。

>

  • 它不是非静态内部类。

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

    它没有用定义注释的EJB组件注释,也没有在EJB-jar.xml中声明为EJBbean类。

    它具有适当的构造函数。也就是说,以下情况之一就是这种情况。

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

    该类声明了一个注释为@Inject的构造函数

    定义托管bean不需要特殊声明,例如注释。

  • 共有1个答案

    相俊迈
    2023-03-14

    听起来您已经习惯了CDI1.0,现在对CDI1.1中引入的隐式bean归档感到困惑。

    beans.xml现在是可选的,隐式bean存档是默认的,这意味着一个类只有在它有一个bean定义注释时才是bean候选,例如@Deptherine@Request estScoped等。

     类似资料:
    • 使用JavaFX8,如果ObjectProperty的一个属性发生更改,但引用保持不变,那么如何能够得到通知? 下面是使用ObjectProperty的具体示例 相关代码是第一次设置的值并随后删除一个元素的位置。change eListener仅在设置的值时收到通知,但在值更改时不会收到通知。 我的问题是:即使引用的对象没有更改,如果密钥库得到更新,我如何获得通知?JavaFX中是否有内置方式?

    • 我按照设置TwitterSource和HDFS汇的链接。 用于启动代理的命令: 我成功地做到了这一点,但现在有一个问题。在停止flume代理之前,输出不会被写入。一旦我杀了我的水槽代理,它就会被写到HDFS。 我有两个问题: 1)如何停止水槽剂 - 除了做CTRL C之外,还有其他方法吗? 2)我能让flume-agent在移动中向HDFS写信,而不必杀死代理吗? 注意:终止进程后,写入的文件。t

    • 问题内容: 这是我的配置: 根据此处找到的logback文档(http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy),文件将根据我的fileNamePattern 每分钟翻转一次。 我观察了它是如何工作的,这是我的发现: 它不会在很短的时间内创建日志文件。 当新日志到达时,它只会为前一分钟创建一个日志文件。(例如,我在

    • 问题内容: 我有一个返回搜索结果的Ajax请求,并且正在动态创建DOM元素以显示这些结果。在除IE8之外的所有已测试浏览器中,此功能均按预期工作。 请求返回的很好,JavaScript成功运行,并且正在创建元素,但是元素未在页面中显示。它们仅在鼠标单击页面上的某处后出现。 我运行了一个快速测试,在没有Ajax请求的情况下运行了回调代码,并且在该处的行为符合预期。所以我想知道这是否与IE8管理回调线

    • 考虑到JAXB注释的对象,是否有办法确定类/字段/方法在封送过程中是否会导致xsi: type? 是XmlElement注释, 我唯一需要担心的情况? 我正在编写一个Lua解组器,在这里我们删除了很多常见的xml类型信息,我正在尝试找出如何将传入的Lua与JAXB匹配。 谢谢 --更新-- 下面是一个简单的示例,说明了问题: 当我收到一个动物对象时,我可以查询动物的注释来检测它应该是狗或猫而不是动

    • 问题内容: 我正在尝试使用以下代码: 但我最终收到以下错误: 聚合可能不会出现在WHERE子句中,除非它在HAVING子句或选择列表中包含的子查询中,并且正在聚合的列是外部引用SELECT dbo。[PatRoster]。* FROM dbo。[PatRoster] WHERE PatID = @PatIDParam和EffectiveEnrollmentDate IN(选择MAX(Effecti