0
我是Guice
的新手,对缓存有疑问。Guice:我如何缓存数据
我有一个Web应用程序,它使用提供程序来提供用户配置。
bind(UserConfiguration.class).toProvider(UserConfigurationProvider.class).in(ServletScopes.REQUEST);
提供商声明为:
public class UserConfigurationProvider implements Provider<UserConfiguration>{
public UserConfiguration get() {
userConfigurationDatabase.getUserConfiguration(<some param here>);
}
}
get方法,它调用DB
,并作出非常昂贵DB
电话。
我有注入像数的其中获得UserConfiguration
类:
public class PriceView {
private UserConfiguration userConfiguration;
@Inject
public MyClass(UserConguration userConfiguration){
this.userConfiguration = userConfiguration;
}
.....
}
public class OrderView {
private UserConfiguration userConfiguration;
@Inject
public MyClass(UserConguration userConfiguration){
this.userConfiguration = userConfiguration;
}
........
}
的问题是,每一次切换的视图时间,创建和一个新的xxxxView对象因此新UserConfiguration
被注入,因此调用昂贵的DB
调用。
我想调用DB
每个用户登录限制为一次。我的想法是,当用户登录并在用户注销或过期后将其清除时,缓存UserConfiguration
。
但我想知道Guice
提供了一些关于此用例的更加巧妙的缓存方法吗?
非常感谢。