当前位置: 首页 > news >正文

360建筑网密码忘了如何设定旅游网站seo核心关键词

360建筑网密码忘了,如何设定旅游网站seo核心关键词,平面设计手机作图软件,做外贸需要自己建网站吗推荐阅读#xff1a;Sping源码RedisNginxMySQL等七篇实战技术文档#xff0c;阿里大佬推荐阿里内部#xff1a;2020年全技术栈文档PPT分享#xff0c;(万粉总结#xff0c;回馈粉丝)在我们的实际开发中#xff0c;多多少少会遇到统计一段代码片段的耗时的情况#xff0c…推荐阅读Sping源码RedisNginxMySQL等七篇实战技术文档阿里大佬推荐阿里内部2020年全技术栈文档PPT分享(万粉总结回馈粉丝)在我们的实际开发中多多少少会遇到统计一段代码片段的耗时的情况我们一般的写法如下long start System.currentTimeMillis();try { // .... 具体的代码段} finally { System.out.println(cost: (System.currentTimeMillis() - start));}上面的写法没有什么毛病但是看起来就不太美观了那么有没有什么更优雅的写法呢1. 代理方式了解 Spring AOP 的同学可能立马会想到一个解决方法如果想要统计某个方法耗时使用切面可以无侵入的实现如// 定义切点拦截所有满足条件的方法Pointcut(execution(public * com.git.hui.boot.aop.demo.*.*(*)))public void point() {}Around(point())public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { long start System.currentTimeMillis(); try{ return joinPoint.proceed(); } finally { System.out.println(cost: (System.currentTimeMillis() - start)); }}Spring AOP 的底层支持原理为代理模式为目标对象提供增强功能在 Spring 的生态体系下使用 aop 的方式来统计方法耗时可以说少侵入且实现简单但是有以下几个问题统计粒度为方法级别类内部方法调用无法生效(详情可以参考博文【SpringBoot 基础系列教程】AOP 之高级使用技能)2. AutoCloseable在 JDK1.7 引入了一个新的接口AutoCloseable, 通常它的实现类配合try{}使用可在 IO 流的使用上经常可以看到下面这种写法// 读取文件内容并输出try (Reader stream new BufferedReader(new InputStreamReader(new FileInputStream(/tmp)))) { List list ((BufferedReader) stream).lines().collect(Collectors.toList()); System.out.println(list);} catch (IOException e) { e.printStackTrace();}注意上面的写法中最值得关注一点是不需要再主动的写stream.close了主要原因就是在try(){}执行完毕之后会调用方法AutoCloseable#close方法基于此我们就会有一个大单的想法下一个Cost类实现AutoCloseable接口创建时记录一个时间close 方法中记录一个时间并输出时间差值将需要统计耗时的逻辑放入try(){}代码块下面是一个具体的实现public static class Cost implements AutoCloseable { private long start; public Cost() { this.start System.currentTimeMillis(); } Override public void close() { System.out.println(cost: (System.currentTimeMillis() - start)); }}public static void testPrint() { for (int i 0; i 5; i) { System.out.println(now i); try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } }}public static void main(String[] args) { try (Cost c new Cost()) { testPrint(); } System.out.println(------over-------);}执行后输出如下:now 0now 1now 2now 3now 4cost: 55如果代码块抛异常也会正常输出耗时么public static void testPrint() { for (int i 0; i 5; i) { System.out.println(now i); try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } if (i 3) { throw new RuntimeException(some exception!); } }}再次输出如下并没有问题now 0now 1now 2now 3cost: 46Exception in thread main java.lang.RuntimeException: some exception!at com.git.hui.boot.order.Application.testPrint(Application.java:43)at com.git.hui.boot.order.Application.main(Application.java:50)3. 小结除了上面介绍的两种方式还有一种在业务开发中不太常见但是在中间件、偏基础服务的功能组件中可以看到利用 Java Agent 探针技术来实现比如阿里的 arthas 就是在 JavaAgent 的基础上做了各种上天的功能后续介绍 java 探针技术时会专门介绍下面小结一下三种统计耗时的方式基本写法long start System.currentTimeMillis();try { // .... 具体的代码段} finally { System.out.println(cost: (System.currentTimeMillis() - start));}优点是简单适用范围广泛缺点是侵入性强大量的重复代码Spring AOP在 Spring 生态下可以借助 AOP 来拦截目标方法统计耗时Around(...)public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { long start System.currentTimeMillis(); try{ return joinPoint.proceed(); } finally { System.out.println(cost: (System.currentTimeMillis() - start)); }}优点无侵入适合统一管理(比如测试环境输出统计耗时生产环境不输出)缺点是适用范围小且粒度为方法级别并受限于 AOP 的使用范围AutoCloseable这种方式可以看做是第一种写法的进阶版// 定义类public static class Cost implements AutoCloseable { private long start; public Cost() { this.start System.currentTimeMillis(); } Override public void close() { System.out.println(cost: (System.currentTimeMillis() - start)); }}// 使用姿势try (Cost c new Cost()) { ...}优点是简单适用范围广泛且适合统一管理缺点是依然有代码侵入说明上面第二种方法看着属于最优雅的方式但是限制性强如果有更灵活的需求建议考虑第三种写法在代码的简洁性和统一管理上都要优雅很多相比较第一种可以减少大量冗余代码作者一灰灰链接https://juejin.im/post/5e5e4cc6518825493d6a96c4
http://wiki.neutronadmin.com/news/442193/

相关文章:

  • 建站模板有哪些linux本地wordpress
  • 装饰设计网站大全东莞网站建设公司 h5
  • 网站优化外包做网站推广的价格
  • 兰州网站建设q479185700惠百度自己网站排名
  • 资金盘做网站oppo软件商店安装
  • 网页设计网站制作公司谷歌推广网站怎么做
  • 网站制作开发的步骤和方法郑州做网站茂睿科技
  • 鹰潭网站建设做企业展示型网站
  • 柳州企业网站建设价格做公众号推送的网站
  • 网站资料库建设的功能需求化妆品网站方案
  • 开发手机网站用什么语言电子商务商城网站建设
  • 10G网站空间服装公司网站建设方案
  • 北京网站推广服务wordpress当前位置
  • 企业模拟网站建设石家庄高端网站开发
  • 网站开发培训好学吗深圳网站建设专家
  • 专业购物网站建设价格王野天与葛优
  • 湖南省建设工程造价总站网站网站设置域名
  • 一站式网站建设业务网站建设售价多少钱
  • pc网站建设哪个好网站推广优化外包便宜
  • 绥化建设网站重庆建设工程施工安全管理网
  • 东莞哪里有网站建设厂家调研报告
  • 山东跨境电商建站公司公司注册网上核名流程
  • 深圳网页制作培训吉林网站优化
  • 广州微信网站建设咨询wordpress解压到空间
  • 上海网站设计工作室遵义直播遵义新闻官网
  • 开源课程 视频网站模板如何 做网站挣钱
  • 电子商务网站建设的一般步骤有泉州网站设计制作
  • 网站制作自助免费模板网站都有什么区别
  • 视频号的网站链接广告页面模板
  • 自助网站建设怎么建设淘宝网站推广策划方案