gpt4 book ai didi

Java Spring MVC。是否可以通过调用 "new"来覆盖单例(或 session )作用域的 bean?

转载 作者:行者123 更新时间:2023-11-30 10:58:38 26 4
gpt4 key购买 nike

我正在通过尝试创建一个简单但实​​用的网页来学习 Spring MVC 框架。

我想知道是否可以通过调用"new"运算符来覆盖 session bean...

我已经创建了引用当前用户的 session 作用域 bean。如果用户未登录,默认 bean 将与访客参数一起使用。

<bean id="currentUser" class="pl.home.models.User" scope="session">
<aop:scoped-proxy />
</bean>

然后,在我的 Controller 中,我放置了以下代码:

@Autowired @Qualifier("currentUser")
protected User user;

当用户尝试登录时,我想通过调用覆盖用户实例:

user = new User(email, password);

以上代码只会“本地”覆盖用户实例。 Spring 容器内的 bean 实例将保持不变。

是否可以覆盖 Spring 容器中的用户实例?或者我的方法完全错了?

谢谢,马里乌斯

最佳答案

基本上我通过 Java EE HttpSession 解决它,您可以使用相同的方法。用户登录成功后,创建一个 currentUser 对象并将其设置为 HttpSession,如下所示:

public void loginPost(HttpServletRequest request){
//After sucessfull login
User currentUser=initializeCurrentUser();
HttpSession session=request.getSession();
session.setAttribute(SessionToken.NAME, currentUser);
}

如果不是登录,则使用默认用户设置初始化 currentUser 并设置为 session 。如果您想知道 clusterring,您可以将此 currentUser 保存到 db 并将 recordId 设置为 session 并在需要时查询它。

关于Java Spring MVC。是否可以通过调用 "new"来覆盖单例(或 session )作用域的 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32168326/

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