Quarkus/CDI 中的 RequestScope 如何工作?

问题描述 投票:0回答:1

我用 Quarkus 做了一些实验,但我很难理解

@RequestScoped
的工作原理。来自 Spring,我希望下面的代码不工作并抛出异常:

@ApplicationScoped
public class AppLifecycleBean {

    @Inject
    MyBean myBean;

    void onStart(@Observes StartupEvent ev) {
        myBean.doSomething();
    }
}

@RequestScoped
public class MyBean {
    public void doSomething() {
        System.out.println("Hello!");
    }
}

请求作用域 bean 被正确注入为代理。但是即使没有可用的请求,在代理上调用方法似乎也能正常工作?

cdi quarkus requestscope
1个回答
0
投票

如果一个 bean 类有注释

@RequestScoped
,CDI 将在第一次调用 bean 方法时懒惰地实例化 bean。这样的 bean 仅存在于用于处理单个 HTTP 请求的链中。

Quarkus 中的 Bean 范围概述

© www.soinside.com 2019 - 2024. All rights reserved.