注射變量在DAO我具有被延伸「GenericDAO」來自控制器
通用的DAO與獲取和設置LanguageId可變DAO類。
我從會話中獲得我的languageid。
有什麼方法可以直接在genericDAO
中設置我的語言ID。所以每次我使用dao類,我都不必從我的控制器中傳遞languageId?
最後我想要的是,我應該可以在我的dao對象中使用getLanguageId()
。
注射變量在DAO我具有被延伸「GenericDAO」來自控制器
通用的DAO與獲取和設置LanguageId可變DAO類。
我從會話中獲得我的languageid。
有什麼方法可以直接在genericDAO
中設置我的語言ID。所以每次我使用dao類,我都不必從我的控制器中傳遞languageId?
最後我想要的是,我應該可以在我的dao對象中使用getLanguageId()
。
DAO的一點是它們是無狀態而會話代表一些有狀態信息。所有有狀態的信息應該通過方法的參數傳遞給DAO。
因此,如果您仍然希望在DAO中使用getLanguageId(),則註定要在每個會話中創建DAO實例,並在創建過程中爲其注入languageId。
通常將DAO設置爲單例,因此所有不同線程只使用一個實例。如果是這樣的話,那麼你不能爲一個用戶設置語言,而不會有其他人受到影響,並將其作爲方法參數傳遞是唯一確保其他線程不會無意中得到錯誤語言ID的安全方法。所以,你是否可以做你想做的事取決於你的DAO的範圍。