2012-07-24 67 views
1

注射变量在DAO我具有被延伸“GenericDAO”来自控制器

通用的DAO与获取和设置LanguageId可变DAO类。

我从会话中获得我的languageid。

有什么方法可以直接在genericDAO中设置我的语言ID。所以每次我使用dao类,我都不必从我的控制器中传递languageId?

最后我想要的是,我应该可以在我的dao对象中使用getLanguageId()

回答

0

DAO的一点是它们是无状态而会话代表一些有状态信息。所有有状态的信息应该通过方法的参数传递给DAO。

因此,如果您仍然希望在DAO中使用getLanguageId(),则注定要在每个会话中创建DAO实例,并在创建过程中为其注入languageId。

3

通常将DAO设置为单例,因此所有不同线程只使用一个实例。如果是这样的话,那么你不能为一个用户设置语言,而不会有其他人受到影响,并将其作为方法参数传递是唯一确保其他线程不会无意中得到错误语言ID的安全方法。所以,你是否可以做你想做的事取决于你的DAO的范围。