Commons-lang

Commons-lang3提供的StopWatch执行时间监视器

a 夏天 提交于 2019-12-09 12:42:53
Commons-lang3提供的StopWatch执行时间监视器, spring也提供了同样功能的工具 前言 我们如果要统计一段代码的执行时间:我们的办法是 public static void main(String[] args) { long startTime=System.currentTimeMillis(); //获取开始时间 //函数主体代码 //... long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(endTime-startTime)+"ms"); } 倘若我们要展示成秒、甚至分钟,还得我们自己处理 可能到了JDK8以后,我们变得稍微优雅一些了 可以这么处理: Instant start = Instant.now(); //doSomething(); Instant end = Instant.now(); Duration duration = Duration.between(start, end); System.out.println("millis = " + duration.toMillis()); 这个比上面优雅一点,灵活度也更强一些。但定义的变量有点多,总体上还是不够优雅。因此本文介绍StopWatch执行时间监视器

java.lang.NoSuchFieldException: resourceEntries struts2

99封情书 提交于 2019-12-02 21:05:37
1、关于项目中使用struts2 报java.lang.NoSuchFieldException: resourceEntries 的问题。 当我们使用tomcat 7.0.64 及以下的版本时是不会出问题的。当我们在使用tomcat 7.0.65时会报这个问题,网上看到很多解答都是说什么tomcat 8之类的。 实际出现问题在tomcat 7.0.65 就开始了 。出现这个问题的根源是因为。在64到65 的时候,org\apache\catalina\loader\WebappClassLoader.java 这个类进行了抽象,抽象出了org\apache\catalina\loader\WebappClassLoaderBase.java. 2、在我们用的struts2 的xwork 包内 \com\opensymphony\xwork2\util\LocalizedTextUtil.java内的清除tomcat 缓存的地方有问题。问题就初夏这个clearMap。java自带的getDeclaredField 是取不到父类的属性的。所以这里会一直报错。 最新版的这两个方法: private static void clearTomcatCache() { ClassLoader loader = getCurrentThreadContextClassLoader(); //