springmvc中使用内部类做数据缓存
springmvc自动注入的Service中保存一个全局变量,全局变量每一个请求对应一个新的变量。
service中新建一个内部类用@Scope改变类的作用域,在用@Lookup注入,这样每次请求都能获取到新的Cache对象
@Service
public class XXService{
@Lookup
public Cache getCache() {
return null;
}
public void work(){
getCache().list.add(XXX);
}
@Component
@Scope("request")
public static class Cache {
List list = new List();
Map<String, Object> map = new HashMap<>();
}
}