java - cdi 生产者是否具有类范围

标签 java jakarta-ee cdi

您好,我的问题是,例如在应用程序范围的 bean 上生成的实例是否也会生成应用程序范围的实例?它是否具有其类范围或始终是依赖的?

最佳答案

该规范将生产者方法视为 bean(基本上,生产者是如何创建给定 bean 类型的实例的定义)。因此,适用一条规则,即如果未提供范围,则假定为 @Default

因此,您的问题的答案是 - 如果未指定,则生产者范围为 @Default。生产者范围和声明它的 bean 范围之间没有联系。

@ApplicationScoped
public MyBean {

  @Produces //this will produce @Dependent
  public Foo produceDependent() {
    return new Foo();
  }

  @Produces
  @RequestScoped //produces the scope you define
  public Bar produceReqScopedBean() {
    return new Bar();
  }
}

关于java - cdi 生产者是否具有类范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43242487/

相关文章:

Java Servlet - 获取具有相同名称的参数

java - Tomcat 上的 JSF - 为什么这可能?

java-ee-6 - 覆盖内置的主体 Bean

java - Spring MVC 找不到映射错误

java - Lombok 删除 IntelliJ 上的红色下划线

Java - 如何独立于平台输出

java - EclipseLink 的 @UuidGenerator 导致 NullPointerException

java - CDI - 当观察者观察到事件时是否通知调用者?

java - 如何在 CDI 中将 @Disposes 与字符串对象一起使用

java - 为什么有些人声称 Java 的泛型实现很糟糕?