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

浙江省建设监理管理协会网站萧县做网站的公司

浙江省建设监理管理协会网站,萧县做网站的公司,seo排名优化软件有用,电商网站如何做seo什么是AOP AOP是面向切面,面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。对多个对象共同行为封装成一个模块叫切面,然后某个方法为切点。 通俗的讲:就是在一些代码中做重复操作的时候,我们为了…

什么是AOP

         AOP是面向切面,面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。对多个对象共同行为封装成一个模块叫切面,然后某个方法为切点

        通俗的讲:就是在一些代码中做重复操作的时候,我们为了实现代码的复用性,统一去处理这些工作,让后让我们得操作自然的嵌入(用自定义注解)到指定方法的指定位置。

        利用AOP可以对业务逻辑 的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高 了开发的效率。

如下图所示:         把水平面抽象成一个切面对象,我们把日志代码放到切面对象中,然后对这个切面对象去编程,本质上还是面向对象编程,但是思想是面向切面编程。 通过aop可以对其进行增强,减少重复代码,降低耦合。基于代理实现。

5个关键术语

1)横切关注点,从每个方法中抽取出来的同一类非核心业务

2)切面(Aspect),对横切关注点进行封装的类,每个关注点体现为一个通知方法;通常使用 @Aspect 注解来定义切面。

3)通知(Advice),切面必须要完成的各个具体工作,比如我们的日志切面需要记录接口调用前后的时长,就需要在调用接口前后记录时间,再取差值。通知的方式有五种:

  • @Before:通知方法会在目标方法调用之前执行

  • @After:通知方法会在目标方法调用后执行

  • @AfterReturning:通知方法会在目标方法返回后执行

  • @AfterThrowing:通知方法会在目标方法抛出异常后执行

  • @Around:把整个目标方法包裹起来,在被调用前和调用之后分别执行通知方法

4)连接点(JoinPoint),通知应用的时机,比如接口方法被调用时就是日志切面的连接点。

5)切点(Pointcut),通知功能被应用的范围,比如本篇日志切面的应用范围是所有 controller 的接口。通常使用 @Pointcut 注解来定义切点表达式。

项目中使用过AOP吗?AOP使用场景?

我的项目里面,日志操作用过。

用户请求的时候,我们需要记录下这些操作,例如需要记录操作的用户是谁、请求方式是什么、访问地址、模块名称、登录IP、操作时间等。就用到了这个AOP。具体如何操作,看下面如何使用AOP。

常用的使用场景

  1. 记录操作日志

  2. 缓存处理

  3. Spring中内置的事务

如何使用AOP?

例如日志操作:日志操作的核心是使用aop中的环绕通知+切点表达式(找到要记录日志的方法),通过环绕通知的参数获取请求方法的参数,保存到数据库。

日志用来记录一下请求的方式(解析方法可以获取)、URL、用户名(解析Session可以获取)、操作时间等。

        1. 在项目中导入AOP,就是导入到xml文件中

        2. 在切面类上加一个注解@Aspect,表明这是切面类。例如日志操作,那你的切面类里面就需要写一些业务:获取操作时间、操作人的用户名(可以用Session或token获取)、访问的URL、请求方式等,然后将这些记录到数据库。

        3. 自定义一个注解,用来标注你要做的公共代码。  

                有的代码需要记录日志,有的不需要,那就用这个注解来表示哪些需要做日志。

AOP核心:动态代理

        将程序中的业务逻辑加到目标类上,就会涉及到动态代理,AOP的核心技术是动态代理,体现动态代理核心(mybatis的dao层其实就是使用到了jdk动态代理,只有接口)需要通过CGlib生成实现类,作为模板类,给代理使用,Spring通过代理,引入模板类,生成代理类对象,invoke调用对象的Method方法,传入目标类对象和参数,完成动态代理

Spring AOP和 AspectJ AOP有什么区别?

  • springAOP 是spring支持的面向切面AOP 编程。

  • AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。

springAOP 不是一个完备的AOP 方案。

AspectJ是最首创的AOP技术,用来提供全面的AOP方案。

Spring AOP属于运行时增强而Aspect是编译时增强。Spring AOP 基于代理(Proxying),而AspectJ基于字节码操作(Bytecode Manipulation)。 Spring AOP已经集成了Aspectl, Aspectl应该算的上是Java生态系统中最完整的 AOP框架了。Aspectl相比于Spring AOP功能更加强大,但是 Spring AOP相对来说更简单, 如果我们的切面比较少,那么两者性能差异不大。但是,当切面太多的话,最好选择Aspectl,它比Spring A0P.快很多。 同级调用方法不可切入

http://www.yayakq.cn/news/639337/

相关文章:

  • 响应式地方网站学做网站是什么
  • 免费图标下载网站外贸工厂的网站建设
  • 中咨城建设计南京网站商务网站策划书
  • 深圳网络做网站站长查询工具
  • 网站前后端用什么软件做长春求推荐好的网站优化推广
  • 丰台做网站公司正规的网站建设公
  • 有哪些可以做翻译兼职的网站做现货黄金网站
  • 如何登陆公司网站后台网站前后台代码
  • 网站建设 信息化程度百度关键词快排
  • 网站首页布局设计用什么网页设计图片轮播的代码
  • 电商网站首页设计昆明网站建设案例
  • 企业网站推广方法网站的格式分类
  • 高端商城网站建设十大免费软件下载大全
  • 邢台专业网站建设公司婚庆公司网站建设策划书
  • 岳阳建设网站的公司番禺网站开发费用
  • 互网站开发维护成本高搜收录网
  • 网站建设论文总结大众汽车网站建设
  • 北京专业制作网站公司吗深圳专业网站建设公司多少钱
  • 海阳做网站ps做的网站模板
  • 江阴市建设局官网站中小企业网站建设维护内容
  • 上海网站推广服务如何建站网站
  • 江西网站建设公司租车网站 模板
  • 中企动力 网站建设 眼镜网站建设书籍资料
  • 做旅行网站的意义西安网站制作中心
  • 有域名一定要买空间做网站python如何调用wordpress
  • 我们的爱情网站制作河南国正建设集团公司网站
  • 深圳网站开发定制今天郴州刚刚发生的事
  • 做平面图片的网站wordpress视频采集
  • 为什么网站建设起来搜素不到百度推广手机版
  • 潍坊网站建设一站式服务上海搬家公司收费标准