我有一个主控制器,它充当我的Spring MVC 4.0.3应用程序的入口点。这个想法是从数据库加载一次用户及其配置文件(首选项),然后在会话中设置它们,以便在整个应用程序中轻松重用它们。
我是Spring MVC的新手,我来自Struts 1.3.5,我习惯于这样做:
<bean define id="currentUser" name="currentUser"
type="my.entity.bean" scope="session" />
我正在使用Thymeleaf作为前端(观点)。
是否存在任何类型的AutoWiring可能性,因此它可以自动连接到所有控制器,而无需在任何地方提供一些样板代码?
感谢您的帮助。
答案 0 :(得分:2)
定义一个CurrentUser
Spring bean,其范围为“session”,并将其注入所有控制器:
@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;
}
}
“入口点”控制器将设置用户信息,其他人将获得它。
但要注意“入口点”。用户应该能够为任何页面添加书签并访问您的webapp而无需通过入口点控制器。验证过滤器或拦截器是一个更好的主意。