是什么使 Bean 成为 CDI Bean?

2024-01-03

例如,在这个问题的最佳答案中:Java EE 6 @javax.annotation.ManagedBean 与 @javax.inject.Named 与 @javax.faces.ManagedBean https://stackoverflow.com/questions/11986847/java-ee-6-javax-annotation-managedbean-vs-javax-inject-named-vs-javax-faces我读到:

要部署 CDI bean,您必须将名为 beans.xml 的文件放置在 类路径上的 META-INF 文件夹。一旦你这样做了,那么每颗豆子都会 该包成为 CDI bean。

而且还据说:

如果您想从 JSF 页面使用 CDI bean,您可以给它一个 使用 javax.inject.Named 注释命名。

我有一个示例代码,如下所示:

@ManagedBean
@ViewScoped
public class SignUpPage {

    private User user;

    @PostConstruct
    public void init() {
        user = new User();
    }

    @Inject
    private UserDao userDao;
// rest of the class

据我了解,我的bean仍然是JSF托管Bean,它不是CDI bean(或者是?)。顺便说一下,我的 WEB-INF 文件夹中有一个 beans.xml。

@Inject 在这里工作得很好。另外,我可以使用 EL 访问该 bean(这让我认为它仍然是一个 JSF 托管 Bean)

UserDao 类看起来像这样:

@Stateless
public class UserDao {
    EntityManager em;
    @PostConstruct
    public void initialize(){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("Persistence");
        em = emf.createEntityManager();
    }

所以,据我所知,这是一个 EJB..

那么这个例子中我有 CDI bean 吗? @Inject 在这里如何工作?

希望我的问题很清楚,问候!


By CDI 规格 http://docs.jboss.org/cdi/spec/1.0/html/architecture.html#d0e238,每个 JavaBean 都是一个Managed Bean(不要将其与 JSF 混淆@ManagedBean,这是一个不同的)在项目中beans.xml存在。所以每个类也都有资格进行依赖注入。请注意,此类的默认范围是Dependent.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是什么使 Bean 成为 CDI Bean? 的相关文章

随机推荐

  • 如何在 MIPS 汇编中找到没有除法或模运算符的余数

    我想找到一种方法来知道一个整数是除以3还是7而不使用除法 因为它在MIPS汇编中非常慢 我做了很多研究但一无所获 有一种方法描述为格兰隆德和蒙哥马利 https gmplib org tege divcnst pldi94 pdf需要 奇
  • 如何将依赖子查询转换为联接以获得更好的性能?

    我有一个存储 主题 的数据库 每个主题都与一大堆图像相关联 这些主题的屏幕截图 现在我想显示最新的 10 个主题 对于每个主题 我只想从数据库中获取一张图像 ID 最低的图像 目前我的查询如下所示 我正在使用子查询 SELECT DISTI
  • ListPopupWindow 不遵守 WRAP_CONTENT 宽度规范

    我正在尝试使用 ListPopupWindow 通过ArrayAdapter 最终这将是一个更复杂的自定义适配器 代码如下 如截图所示 得到的结果ListPopupWindow看起来就像内容宽度为零一样 它显示了正确的项目数量 这些项目仍然
  • HighCharts - 将系列与值而不是百分比进行比较

    只需一个简单的答案 是否有一种简单的方法可以比较一系列值而不是百分比 像 比较 值 而不是 比较 百分比 之类的东西 或者我是否必须手动添加给定时间间隔的数据点 谢谢 是的 但该选项称为value 来自绘图选项 系列 比较 http api
  • 会话重放、会话固定、会话劫持

    谁能明确区分会话固定 会话重放和会话劫持攻击吗 我读了很多文章 但会话劫持和会话重放攻击之间的问题仍然不清楚 固定和劫持最终都有相同的目标 获得会话的访问权限 它们的区别仅在于实现这一目标的方式不同 会话劫持的行为很简单stealing现有
  • Jekyll:javascript 中的液体标签

    假设我有两个链接 所有帖子 和 个人 当用户单击 个人 链接时 他应该只能看到类别为 个人 的帖子 现在 液体标签是 for post in site posts 我想了解是否有办法访问该变量site posts来自 javascript
  • 构造函数内的 Try/catch 块

    在构造函数中使用 try catch 块是一种不好的编程习惯吗 或者只要我们的程序优雅地处理类型初始化器异常就没有什么区别 在 C 中 如果构造函数内有任何异常 框架总是会抛出 typeinitilizer 异常 谢谢 沙米卡 System
  • 随机化数组的有效方法 - Shuffle 代码

    我在面试中被问到这个问题 我给出了各种解决方案 但面试官并不相信 我有兴趣找到解决方案 请提出您的看法 问 编写一个高效的数据结构来实现 ipod 中的 shuffle 它必须播放所有歌曲 每次以不同的随机顺序播放 同一首歌曲不应重复 大部
  • 将 GitLab CI 变量写入文件

    我如何将 GitLab CI 变量写入配置文件 如下所示 test stage test script touch config json echo database DB NAME gt gt config json 变量无法解决 我总是
  • 如何在 Mac 10.8.3 上安装 qpdf?

    跑步时R CMD check在 Mac 构建服务器上的包上 我收到警告 qpdf is needed for checks on size reduction of PDFs 我似乎无法得到qpdf http sourceforge net
  • 自定义 SQL GROUP BY 子句

    我有一个非常定制的 SQL 查询 但在实现时遇到问题 我正在使用 SQL Server 2008 我在此查询中只有一张表 但我正在寻找非常具体的数据 该查询的要求是 对于每个不同的 PartNumber 列 我需要选择要选择的最新 最大 P
  • 如何让 LINQ 全外连接正常运行?

    我正在构建一个 WPF 应用程序来监视用户计算机上的目录 该应用程序从受监控的目录上传文件 然后将一些信息保存到 SQLite 数据库中 部分业务处理是对已经上传的文件不重新处理 对已经上传但自上次上传后发生变化的文件重新上传 我有两个构建
  • 在 C++ 中将值从 X 更改为 X 会导致数据争用吗?

    我有可处理具有不同布局的大数据块的代码 布局将决定哪些数据是固定的 哪些数据是不固定的 一旦数据被固定在一个块中 它通常就不会再改变 所以所有读取数据的代码总是会看到相同的数据 但是 其他服务可以在这些块中进行更改 只要它们确定没有代码将读
  • 如何扩展 Phaser 3 游戏及其资产以使其在智能手机和平板电脑上运行?

    我刚开始使用 Phaser 3 和 Apache C rdova 创建移动 Android 游戏 我创建了一个 1200 x 800 像素的游戏 它在平板电脑上看起来不错 但在智能手机上却不然 如何缩放它以适应多种屏幕尺寸 此外 我需要帮助
  • Sencha touch 2:在itemTpl中获取项目索引

    在XTemplate的文档中 可以使用 来获取当前数组索引 当我在 xlist 的 itemTpl 中使用它时 我总是得到 1 而不是索引 xtype list store myStore itemTpl new Ext XTemplate
  • 多个项目和一种解决方案有什么好处? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 this(...) 或 super(...) 之前“插入”代码?

    有没有办法在调用之前进行初步计算super or this 构造函数 考虑以下示例 public class Test private final int n private final int m private final int st
  • 使用 JUnit 5 并行执行测试用例

    是否可以与 JUnit 5 并行执行测试用例 我正在寻找类似的东西threadPoolSize and invocationCount from TestNG http testng org doc documentation main h
  • 为 string.Contains 构建表达式树[重复]

    这个问题在这里已经有答案了 我正在努力构建一个表达式树 以便我可以动态地对某些数据进行过滤 我已经想出了这个 但它失败了var lambda line foreach var rule in request Where Rules var
  • 是什么使 Bean 成为 CDI Bean?

    例如 在这个问题的最佳答案中 Java EE 6 javax annotation ManagedBean 与 javax inject Named 与 javax faces ManagedBean https stackoverflow