gpt4 book ai didi

java - 如何在 session 中设置一个对象并在所有 Controller 中使用它?

转载 作者:行者123 更新时间:2023-12-02 05:57:53 26 4
gpt4 key购买 nike

我有一个主 Controller ,充当 Spring MVC 4.0.3 应用程序的入口点。这个想法是从数据库中加载一次用户及其配置文件(首选项),然后将它们设置在 session 中,以便可以在整个应用程序中轻松地重复使用它们。

我对 Spring MVC 还很陌生,我来自 Struts 1.3.5,在其中我习惯于执行以下操作:

<bean define id="currentUser" name="currentUser"
type="my.entity.bean" scope="session" />

我使用 Thymeleaf 作为前端( View )。

是否有任何类型的自动接线可能性,以便它自动连接到所有 Controller ,而不必到处携带一些样板代码?

感谢您的帮助。

最佳答案

定义一个 CurrentUser Spring bean,其范围为“session”,并将其注入(inject)到所有 Controller 中:

@Component
@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class CurrentUser {

private UserInformation userInformation;

public void setUserInformation(UserInformation userInformation) {
this.userInformation = userInformation;
}

public UserInformation getUserInformation() {
return userInformation;
}
}

“入口点” Controller 将设置用户信息,其他 Controller 将获取它。

不过要小心“入口点”。用户应该能够为任何页面添加书签并访问您的 Web 应用程序,而无需通过入口点 Controller 。身份验证过滤器或拦截器将是一个更好的主意。

关于java - 如何在 session 中设置一个对象并在所有 Controller 中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22917298/

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