Java基于反射获取/查询Web服务中的缓存信息
场景:
Web开发中,很多时候出了数据错误的问题,会怀疑是缓存中数据不正确导致,而除了一些存在redis等中间件的缓存外,很多缓存是在Java类中创建了一下List、Map等容器缓存数据,为了确定缓存中数据是否正确或是否存在需要的数据,需要在服务运行中时查看缓存内容。
解决方式:
Web服务中,开放一个接口用于查询缓存数据
代码示例:
@RequestMapping(value="/viewInfo.do")
@ResponseBody
public Object viewInfo(String className, String classAttribute){
try {
Class ownerClass = Class.forName(className);
Object obj=ownerClass.newInstance();
Field field=ownerClass.getField(classAttribute);
Object objnow=field.get(obj);
String jsonStr = "";
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(objnow);
} catch (Exception e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
return null;
}