gpt4 book ai didi

java - CDI 注入(inject) Servlet 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:16 24 4
gpt4 key购买 nike

我有一个带有制作人的 Controller 。

@Named
@SessionScoped
public class UserController{

private User user;

//other methods

@Produces
@User
public User produceUser() {
return user;
}
}

如果我将用户注入(inject)到 Servlet 中,我总是会得到相同的用户(我比较了对象 ID)——也在不同的 session 中。如果我将用户注入(inject)到 CDI Bean 中,它就会正常工作,并且我会获取当前 session 的用户。

最佳答案

UserController 是 session 范围的,但生产者不是。 IE。生产者具有 @Dependent 作用域,因此 User bean 在 servlet 初始化时被注入(inject)一次。

尝试将 @SessionScoped 添加到您的生产者方法中。

关于java - CDI 注入(inject) Servlet 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24647516/

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