我怎样才能缓存一个arraylist

时间:2017-04-26 14:12:36

标签: java caching arraylist ibatis displaytag

我有一个应用程序在来自浏览器的每个页面请求上一次又一次地触发相同的查询。所以我想从第一次触发请求时缓存该查询结果,这会导致 arraylist ,因此在来自浏览器的每个请求中,它不应该反复触发相同的查询。

请您分享您的想法或意见吗?

修改

框架:我正在使用ibatis框架进行数据库查询,使用带有displaytag的struts

以下是代码片段

if (req.getParameter("d-2464500-p") == null) {
    UserService userService = UserServiceFactory.getUserService();
    long startTime1 = System.nanoTime();
    log.info("start time is :" + startTime1);
    userList = userService.getUserList();
} else {
    // I want to use the same queried userList for the other pages
    // so that i should not go and fire the query
}

1 个答案:

答案 0 :(得分:1)

为什么不加载懒惰?像这样:

private List<?> userList = null;

private List<?> getUserList() {
    if(this.userList == null) {
        UserService userService = UserServiceFactory.getUserService();
        long startTime1 = System.nanoTime();
        log.info("start time is :" + startTime1);
        userList = userService.getUserList();
    }
    return userList;
}

并使用getUserList()方法获取用户。