gpt4 book ai didi

object - 如何获取特定 cdi session 范围 bean 的所有实例

转载 作者:行者123 更新时间:2023-12-02 01:44:00 24 4
gpt4 key购买 nike

我有一个@SessionScoped cdi bean,用于跟踪我的网络应用程序中的用户 session 信息。有没有办法从另一个@ApplicationScoped bean 中找到这个 bean 的所有对象?

最佳答案

您不能开箱即用。出于安全原因,Java EE 禁止此类操作。

现在您可以设想一种更精细的方法来在您的应用程序范围级别跟踪这些 session bean。最干净的方法是从 @ApplicationScoped bean 中生成它们:

@ApplicationScoped
public class Registry {
private List<SessionData> data = new ArrayList<>;

@Produces
@SessionScoped
public SessionData produceSessionData() {
SessionData ret = new SessionData();
data.add(ret);
return ret;
}

public void cleanSessionData(@Disposes SessionData toClean) {
data.remove(toClean);
}
}

请注意 @Dispose 方法,当您生成的 bean 结束其生命周期时将调用该方法。一种使您的列表保持最新并避免额外内存使用的便捷方式。

关于object - 如何获取特定 cdi session 范围 bean 的所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26800058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com