Caching 如何在JAX-RS中实现缓存
我使用RESTfulWebService从数据库检索数据并返回JSON响应。 我想缓存这个webservice调用,这意味着在应用程序启动时,webservice将从数据库获取结果并将其存储在缓存中 在随后的请求中,它应该从缓存而不是数据库中读取值。 此外,当添加条目或修改现有数据时,应该刷新缓存 我查找了HTTP缓存代码,代码编写如下:-Caching 如何在JAX-RS中实现缓存,caching,jax-rs,Caching,Jax Rs,我使用RESTfulWebService从数据库检索数据并返回JSON响应。 我想缓存这个webservice调用,这意味着在应用程序启动时,webservice将从数据库获取结果并将其存储在缓存中 在随后的请求中,它应该从缓存而不是数据库中读取值。 此外,当添加条目或修改现有数据时,应该刷新缓存 我查找了HTTP缓存代码,代码编写如下:- public class Login_New { @GET @Path("/dofetch") @Produces("applica
public class Login_New {
@GET
@Path("/dofetch")
@Produces("application/json")
public Response getUser() {
String user = null;
System.out.println("Inside Login_New");
ArrayList<User> users = null;
users = DBConnection.getUser();
Gson gson = new Gson();
System.out.println(gson.toJson(users));
user = gson.toJson(users);
CacheControl cc = new CacheControl();
cc.setMaxAge(86400);
cc.setPrivate(true);
ResponseBuilder builder = Response.ok(user);
// return user;
return builder.build();
}
}
公共类登录\u新建{
@得到
@路径(“/dofetch”)
@生成(“应用程序/json”)
公共响应getUser(){
字符串user=null;
System.out.println(“内部登录新”);
ArrayList用户=null;
users=DBConnection.getUser();
Gson Gson=新的Gson();
System.out.println(gson.toJson(users));
user=gson.toJson(用户);
CacheControl cc=新的CacheControl();
抄送setMaxAge(86400);
cc.setPrivate(真);
ResponseBuilder=Response.ok(用户);
//返回用户;
返回builder.build();
}
}
当我点击后续请求时,我可以从日志中看到请求正在点击数据库,这意味着缓存不工作
请建议您通过检查数据库是否命中来测试缓存,这有点说您忽略了缓存控制的工作原理。服务器不缓存任何内容。浏览器(或支持cc的用户代理)执行缓存。如果您使用的是浏览器,则不应发出请求,因为浏览器具有缓存对象。如果您使用的是不支持HTTP缓存的其他客户端,这就是服务器被命中的原因。那么我如何测试它呢..或者确保缓存在浏览器端完成,而无需再次提交请求?