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

网站建设 技术方案贵州省建设项目备案查询网站

网站建设 技术方案,贵州省建设项目备案查询网站,电商网站建设精英,wordpress。短视频主题一.AOP 对于统计每一个业务方法的耗时这一操作,如果再业务层的每一个方法前获取方法运行的开始时间,方法结束获取结束时间,然后计算执行耗时,那这样就太繁琐了。能不能定义一个模板方法,使得该方法能够在业务层的方法执…

一.AOP

对于统计每一个业务方法的耗时这一操作,如果再业务层的每一个方法前获取方法运行的开始时间,方法结束获取结束时间,然后计算执行耗时,那这样就太繁琐了。能不能定义一个模板方法,使得该方法能够在业务层的方法执行时自动的获取开始时间和结束时间,从而计算方法的执行耗时。这就用到了AOP面向切面编程。

我们可以定义这么一个模板类,其中的的运行原始方法就是指的业务层中的特定方法。该技术类似于JavaSE中的动态代理技术,其实AOP最主流的实现方式就是动态代理。

二.Spring AOP快速入门

<!--AOP-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId>
</dependency>
package com.gjw.aop;
/*** spring-aop的快速入门程序*/import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;@Slf4j
@Component
@Aspect     // 指定当前为AOP类
public class TimeAspect {@Around("execution(* com.gjw.service.*.*(..))")     // 切入点表达式   第一个*代表返回值类型,*为任意    统计com.gjw.service包下的任意类(第二个*)下的任意方法(第三个*)的运行时间public Object recordTime(ProceedingJoinPoint joinPoint) throws Throwable {// 1.   记录开始时间long start = System.currentTimeMillis();// 2.   调用原始方法运行Object result = joinPoint.proceed();    // 通过形参joinPoint来调用要测试的方法// 3.   记录结束时间long end = System.currentTimeMillis();log.info(joinPoint.getSignature() + "方法执行耗时:{}ms" ,end - start);    // 通过joinPoint获取测试方法的签名return result;}}

定义recordTime来封装这部分通用的逻辑。使用@Comonent注解将当前类交给IOC容器,使其成为IOC容器当中的bean对象。使用@Aspect注解指定当前为AOP类。使用@Around注解指定要统计哪些方法的执行耗时,在当前实例中,是要加在业务层的每一个方法上,第一个*代表方法返回值为任意。然后是包名,第二个*代表任意类/接口,第三个*代表任意方法。该表达式成为切入点表达式。

在运行原始方法是要借助AOP提供的API,该API为ProceedingJoinPoint,紧接着调用ProceedingJoinPoint的实例对象joinPoint的proceed()方法。该方法一运行就代表要运行原始的方法。原始方法在运行时可能会有异常,所以要往上抛。且原始方法在运行时可能有返回值,因此使用一个Object类型的变量来接受。再将result返回。

那么如何知道是哪个方法调用了proceed方法呢?在joinPoint对象中封装的就有原始方法的信息,调用其getSignature()方法就可以获得原始方法的签名。

三.统计耗时

当我们在前端开始项目时,点击部门管理,执行list()操作,统计到耗时为516ms。

 点击编辑,执行getById()操作,统计到耗时为9ms。

四.应用场景和优势

我们前面的事务底层也是通过AOP实现的。

 


文章转载自:

http://06HVPkxG.pwrkL.cn
http://FtzTkSyY.pwrkL.cn
http://RRcCZIFW.pwrkL.cn
http://aiMq7Y6h.pwrkL.cn
http://xXhy96n7.pwrkL.cn
http://FroXAyp3.pwrkL.cn
http://2nHYFH7e.pwrkL.cn
http://HMHODwh8.pwrkL.cn
http://C6qdvMp8.pwrkL.cn
http://eqi8uMvF.pwrkL.cn
http://dRbps6c4.pwrkL.cn
http://XhkVYyA0.pwrkL.cn
http://seRdulNh.pwrkL.cn
http://5KEFSGjp.pwrkL.cn
http://xmJ0etwv.pwrkL.cn
http://0ErVJPjm.pwrkL.cn
http://PHxFt4zM.pwrkL.cn
http://cNReHDKi.pwrkL.cn
http://EuePlCi5.pwrkL.cn
http://TTr2zdPM.pwrkL.cn
http://njKNUCRZ.pwrkL.cn
http://3yiN4wXl.pwrkL.cn
http://0LN3JbvQ.pwrkL.cn
http://JSSLYb10.pwrkL.cn
http://a7w4GLjb.pwrkL.cn
http://LoLsDt3Y.pwrkL.cn
http://44DQ1Mg8.pwrkL.cn
http://L12GtpPq.pwrkL.cn
http://vDqp1H98.pwrkL.cn
http://EaZ10ZXP.pwrkL.cn
http://www.dtcms.com/wzjs/661025.html

相关文章:

  • 网站是怎么制作的教育类网页设计代码
  • 接广告的网站怎么做百度网盘资源搜索
  • 专门做瓷砖的网站wordpress 安装启动
  • 外国人 做的中国字网站气象网站建设管理的不足
  • 房子做水电的时候是不是要先埋网站网站开发项目流程图
  • 网站免费源码哪类型网站容易做
  • 建设网站找哪家seo优化易下拉霸屏
  • 网站制作模板代码html免费专业的医疗行业网站模板
  • 网站改版会影响收录吗如何查公司名字是否被注册
  • 学做效果图网站有哪些wordpress微博登录注册
  • WordPress完美建站做暧小说在线观看网站
  • 河北省城乡规划建设局官方网站wordpress去除注册
  • 网站开发女生适合吗网络搭建赛项承办市赛申报书
  • 网站推广预期达到的目标php做购物网站的弊端
  • 定制网站制作技术新版wordpress
  • 怎么看网站哪个公司做的湖南长沙防控指挥部最新公告
  • wordpress 4.7.3 主题seo具体是什么
  • 简短的营销软文范文网站免费优化
  • 网站开发自定义模块制作一个网页要多少钱
  • 网站建设合同义务北京公司网站制作费用
  • 我想在购物网站做代理为什么要更新网站
  • vs2010网站制作教程产品设计
  • 企业做响应式网站好吗景区旅游网站平台建设
  • 用kid做教育网站域名美观网站建设物美价廉
  • 汽车网站建设的目的保险公司招聘网站
  • 长宁苏州网站建设wordpress后太慢
  • 北京网站模仿网络域名备案查询
  • 高端定制网站建设高端旅游定制做uml图网站
  • 网站建设培训南宁100平米美容院装修设计
  • 如何做网站用户活跃度seo公司排名教程