2013-04-23 49 views
0

我有一個很常見的使用Hibernate的Spring Web MVC應用程序。應用程序的用戶存儲在名爲USER的表中,並且還存儲了用戶名,密碼和其他一些屬性。此外,我正在使用jdbc-user-service的Spring安全性來保護應用程序,以便只有來自此表的用戶才能訪問其用戶名/密碼。 現在我的問題是,一旦登錄,我需要經常訪問這個用戶對象,例如以獲得來自該用戶的所有訂單,該用戶的地址等等。我知道如何訪問Principal對象,它與我的用戶對象共享用戶名,但我想知道哪個是最容易訪問我的自定義User對象的策略。有幾個策略,比如將它放在會話中,寫一個findUserByUsername()方法,並在需要時調用它(這會導致數據庫碰撞很多,我認爲),但我正在尋找一個更智能的方法。是否有可能注入一個用戶對象?或者我應該把它放在會議中?如果是這樣,那麼達到這個目標的最好方法是什麼?我怎麼能在Spring框架登錄事件後掛鉤? 有什麼建議嗎? 謝謝 保羅Spring MVC用戶檢索策略

回答

0

您可以始終將UserDetails bean範圍(link)。這當然是一個有狀態bean,因此只要會話處於活動狀態,您就可以自由地存儲有關您所需的用戶實體的任何信息並訪問它。一次去數據庫。

注:用戶對象(以及任何相關對象)將從Hibernate會話分離。在「存儲」bean中的值或在以後的處理中訪問它們時,請牢記這一點。