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

什么网站可以做问卷调查亚马逊市场营销案例分析

什么网站可以做问卷调查,亚马逊市场营销案例分析,做网站怎样设置搜索引擎,网站效果2.1 AOP概述 什么是AOP? AOP英文全称:Aspect Oriented Programming(面向切面编程、面向方面编程),其实说白了,面向切面编程就是面向特定方法编程。 那什么又是面向方法编程呢,为什么又需要面向…

2.1 AOP概述

什么是AOP?

  • AOP英文全称:Aspect Oriented Programming(面向切面编程、面向方面编程),其实说白了,面向切面编程就是面向特定方法编程。

那什么又是面向方法编程呢,为什么又需要面向方法编程呢?来我们举个例子做一个说明:

比如,我们这里有一个项目,项目中开发了很多的业务功能。

然而有一些业务功能执行效率比较低,执行耗时较长,我们需要针对于这些业务方法进行优化。 那首先第一步就需要定位出执行耗时比较长的业务方法,再针对于业务方法再来进行优化。

此时我们就需要统计当前这个项目当中每一个业务方法的执行耗时。那么统计每一个业务方法的执行耗时该怎么实现?

可能多数人首先想到的就是在每一个业务方法运行之前,记录这个方法运行的开始时间。在这个方法运行完毕之后,再来记录这个方法运行的结束时间。拿结束时间减去开始时间,不就是这个方法的执行耗时吗?

以上分析的实现方式是可以解决需求问题的。但是对于一个项目来讲,里面会包含很多的业务模块,每个业务模块又包含很多增删改查的方法,如果我们要在每一个模块下的业务方法中,添加记录开始时间、结束时间、计算执行耗时的代码,就会让程序员的工作变得非常繁琐。

而AOP面向方法编程,就可以做到在不改动这些原始方法的基础上,针对特定的方法进行功能的增强。

AOP的作用:在程序运行期间在不修改源代码的基础上对已有方法进行增强(无侵入性: 解耦)

我们要想完成统计各个业务方法执行耗时的需求,我们只需要定义一个模板方法,将记录方法执行耗时这一部分公共的逻辑代码,定义在模板方法当中,在这个方法开始运行之前,来记录这个方法运行的开始时间,在方法结束运行的时候,再来记录方法运行的结束时间,中间就来运行原始的业务方法。

而中间运行的原始业务方法,可能是其中的一个业务方法,比如:我们只想通过 部门管理的 list 方法的执行耗时,那就只有这一个方法是原始业务方法。 而如果,我们是先想统计所有部门管理的业务方法执行耗时,那此时,所有的部门管理的业务方法都是 原始业务方法。 那面向这样的指定的一个或多个方法进行编程,我们就称之为 面向切面编程。

那此时,当我们再调用部门管理的 list 业务方法时啊,并不会直接执行 list 方法的逻辑,而是会执行我们所定义的 模板方法 , 然后再模板方法中:

  • 记录方法运行开始时间

  • 运行原始的业务方法(那此时原始的业务方法,就是 list 方法)

  • 记录方法运行结束时间,计算方法执行耗时

不论,我们运行的是那个业务方法,最后其实运行的就是我们定义的模板方法,而在模板方法中,就完成了原始方法执行耗时的统计操作 。(那这样呢,我们就通过一个模板方法就完成了指定的一个或多个业务方法执行耗时的统计)

而大家会发现,这个流程,我们是不是似曾相识啊?

对了,就是和我们之前所学习的动态代理技术是非常类似的。 我们所说的模板方法,其实就是代理对象中所定义的方法,那代理对象中的方法以及根据对应的业务需要, 完成了对应的业务功能,当运行原始业务方法时,就会运行代理对象中的方法,从而实现统计业务方法执行耗时的操作。

其实,AOP面向切面编程和OOP面向对象编程一样,它们都仅仅是一种编程思想,而动态代理技术是这种思想最主流的实现方式。而Spring的AOP是Spring框架的高级技术,旨在管理bean对象的过程中底层使用动态代理机制,对特定的方法进行编程(功能增强)。

AOP的优势:

  1. 减少重复代码

  2. 提高开发效率

  3. 维护方便

2.2 AOP快速入门

在了解了什么是AOP后,我们下面通过一个快速入门程序,体验下AOP的开发,并掌握Spring中AOP的开发步骤。

需求:统计各个业务层方法执行耗时。

实现步骤:

  1. 导入依赖:在pom.xml中导入AOP的依赖

  2. 编写AOP程序:针对于特定方法根据业务需要进行编程

为演示方便,可以自建新项目或导入提供的springboot-aop-quickstart项目工程

pom.xml

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId>
</dependency>

AOP程序:TimeAspect

@Component
@Aspect //当前类为切面类
@Slf4j
public class TimeAspect {
​@Around("execution(* com.itheima.service.*.*(..))") public Object recordTime(ProceedingJoinPoint pjp) throws Throwable {//记录方法执行开始时间long begin = System.currentTimeMillis();
​//执行原始方法Object result = pjp.proceed();
​//记录方法执行结束时间long end = System.currentTimeMillis();
​//计算方法执行耗时log.info(pjp.getSignature()+"执行耗时: {}毫秒",end-begin);
​return result;}
}

重新启动SpringBoot服务测试程序:

  • 查询3号部门信息

我们可以再测试下:查询所有部门信息(同样执行AOP程序)

我们通过AOP入门程序完成了业务方法执行耗时的统计,那其实AOP的功能远不止于此,常见的应用场景如下:

  • 记录系统的操作日志

  • 权限控制

  • 事务管理:我们前面所讲解的Spring事务管理,底层其实也是通过AOP来实现的,只要添加@Transactional注解之后,AOP程序自动会在原始方法运行前先来开启事务,在原始方法运行完毕之后提交或回滚事务

这些都是AOP应用的典型场景。

通过入门程序,我们也应该感受到了AOP面向切面编程的一些优势:

  • 代码无侵入:没有修改原始的业务方法,就已经对原始的业务方法进行了功能的增强或者是功能的改变

  • 减少了重复代码

  • 提高开发效率

  • 维护方便

 

http://www.yidumall.com/news/13946.html

相关文章:

  • WordPress 有趣插件长沙seo推广
  • 西安广告设计制作公司培训班线上优化
  • 南昌网站seo技术厂家中国十大企业培训机构排名
  • 网站建设加优化快速seo优化
  • 时尚 wordpress百度seo在哪里
  • 有人在相亲网站骗人做传销股票发行ipo和seo是什么意思
  • 免费下载模板的网站好口碑关键词优化地址
  • 网站开发页面怎么进自助建站系统个人网站
  • 怎样才可以知道网站是否优化宁波seo快速优化教程
  • 山西成宁做的网站百度关键词搜索量排名
  • 门户网站网页设计规范手机网站关键词seo
  • 做app原型的网站站长工具名称查网站
  • 通过网站做诈骗立案吗app推广注册赚钱
  • wap网站建设方案 pdf百度管理员联系方式
  • web网站开发能使用c 吗路由优化大师
  • 北京集团 网站建设上海优化关键词的公司
  • 有做游戏广告的网站seo快速优化软件
  • 如何做时时彩网站今日热点事件
  • 做网站建设的电话销售自助建站系统软件
  • 北京市规划网站曼联官方发文
  • 个人备案的网站可以做宣传泰安做百度推广的公司
  • 做新闻源网站采集站赚钱最近军事新闻
  • 万网 公司网站链接河北百度seo关键词排名
  • 什么是网站销售画质优化app下载
  • 山东做公司网站石家庄百度快照优化
  • 如何做镜像网站朝阳区seo
  • linux ctlscript.sh wordpress网站快速优化排名app
  • 建网站中企动力推荐免费发布广告信息网
  • wordpress 首页轮播图阿亮seo技术顾问
  • 动态网站开发全流程电商网络推广是什么