gpt4 book ai didi

java - 为什么 guice 不注入(inject)之前实例化的 @SessionScoped 对象?

转载 作者:行者123 更新时间:2023-12-01 05:50:17 24 4
gpt4 key购买 nike

我有一个@SessionScoped?被注入(inject)到 Stripes 框架拦截器构造函数中的 DAO 似乎是从拦截器中找到的(在后续调用中),但没有被注入(inject)到同一请求(和 session )中的服务中。为什么同一个实例(在拦截器中初始化)没有在服务(位于同一项目的不同包中)中重用?

将 DAO 设为 @Singleton 可以解决问题,但这是 Not Acceptable ,因为 DAO 存储的信息必须在应用程序上的用户 session 期间保持一致,而该应用程序具有共享同一 DAO 实例的多个用户。

最佳答案

如果Interceptor不是 session 范围的对象,那么您需要注入(inject) Provider<YourDaoType>进入Interceptor 。当一个生命周期较长的对象依赖于另一个生命周期较短的对象时,这是常用的模式。

关于java - 为什么 guice 不注入(inject)之前实例化的 @SessionScoped 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4896560/

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