2014-04-07 11 views
0

我有一个主控制器,充当我的Spring MVC 4.0.3应用程序的入口点。这个想法是从数据库中加载用户一次,连同其配置文件(首选项),然后在会话中设置它们,以便在整个应用程序中轻松地重用它们。如何在会话中设置对象并在所有控制器中使用它?

我非常新的Spring MVC和我从Struts的1.3.5要到,我是用来执行以下操作:

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

我使用Thymeleaf针对前端(视图)。

是否有任何类型的自动连线可能性,因此它可以自动连接到所有控制器,而无需在每个地方都带上一些样板代码?

谢谢你的帮助。

回答

2

定义CurrentUser的Spring bean,与范围“会话”,并在所有的控制器注入它:

@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; 
    } 
} 

的“切入点”控制器将设置用户信息,以及其他的人将得到它。

虽然要小心“切入点”。用户应该能够书签任何页面并访问您的Web应用程序,而无需通过您的入口点控制器。认证过滤器或拦截器将是一个更好的主意。

+0

没错。你有我的例子吗?正如我所说我是Spring的新手,所以我需要提供各种信息。我的列表中的下一步是使用Spring LDAP/Security(例如,它们必须在业务网络上打开有效的会话,因此SSO)对照Active Directory对当前用户进行身份验证。谢谢! –

相关问题