【问题标题】:Can you specialize an already specialized bean in CDI?你能在 CDI 中专门化一个已经专门化的 bean 吗?
【发布时间】:2014-03-25 10:34:12
【问题描述】:

EJB 项目1

@SessionScoped
@Named("bean")
class A
{}

@Specializes
class B extends A
{}

EJB 项目2

@Specializes
class C extends B
{}

网络项目 在 XHTML 中

#{bean.class.name}

正在返回 B

我的问题是我可以在 CDI 中专门化并且已经专门化 bean 吗?隐藏所有范围内的第一个专用 bean。

【问题讨论】:

    标签: jsf cdi


    【解决方案1】:

    CDI JSR299 specification 将专业化描述为:

    要么:

    • X 直接特化 Y,或
    • 存在 bean Z,因此 X 直接特化 Z,Z 特化 Y

    第二个要点描述了您的案例。它确实有效。见my example

    它对您不起作用的原因可能与C 类在另一个项目中并且未被CDI 检测到这一事实有关。也许您忘记将beans.xml 文件添加到Project2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多