2014-04-07 13 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對當前用戶進行身份驗證。謝謝! –

相關問題