后端编程之JAVA面向切面的编程

        很久没写文章了,因为围绕这个内容录了视频,视频里基于提纲做了很多扩展,所以本文也只是把大纲贴出来,没有详细展开,具体还是请看视频吧【youku画面太垃圾了,我已在YOUKU上删除,上载到了网盘上】:

  视频地址:

  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  【JAVA中面向切面的编程技术(简称AOP)】【-陈杰第1部分】_2018-09-01

   链接:https://pan.baidu.com/s/1sU_LstjK9REY8Qm6wjmM2A         密码:7fs6

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 【JAVA中面向切面的编程技术(简称AOP)】【-陈杰第2部分】_2018-09-01

 链接:https://pan.baidu.com/s/1m8lTTJE99bTUGm8kJH8W6w            密码:n69p

*********************************************************************************************************************

1编程技术的发展概述.

1.1 面向过程的编程POP. 

1.2 面向对象编程OOP. 

1.3 面向切面编程AOP. 

2  Java中AOP的实现方式.

2.1 使用静态代理来模拟AOP编程【重点】.

2.2 使用动态代理实现AOP编程【次重点】

(1)基于JDK提供的功能实现动态代理【次重点】

(2)基于第三方类库实现动态代理【次重点】

2.3 使用织入的方式实现AOP编程

3  Spring 框架中AOP的使用【重点】

3.1 Spring框架中 AOP 相关的一些概念和术语.

(1) JointPoint(连接点) 【重点】.

(2)Pointcut(切点)【重点】

(3)Advice(通知)【重点】

(4)Aspect(切面)【重点】

(5)其他一些概念

3.2 Spring 框架中AOP的用法演示【重点】

 

1编程技术的发展概述

1.1 面向过程的编程POP

面向过程编程POP(Procedure Oriented Programming)

1.2 面向对象编程OOP

向对象编程OOP(Object Oriented Programming)

1.3 面向切面编程AOP

面向切面编程AOP(Aspect Oriented Programming)

2  Java中AOP的实现方式

2.1 使用静态代理来模拟AOP编程【重点】

           注意:静态代理本质上还是OOP编程,在设计模式中叫代理模式,此处用来模拟AOP,便于和后面讲的动态代理做比较。

2.2 使用动态代理实现AOP编程【次重点】

(1)基于JDK提供的功能实现动态代理【次重点】

          JDK提供的动态代理功能有局限性,只能基于接口来实现,也就是说被代理的类中需要进行切入的方法必须抽取出来定义在interface里。

                           

(2)基于第三方类库实现动态代理【次重点】

          比JDK提供的基于接口的代理功能要强,可以直接对不继承任何接口的类进行代理,而且可以用字节码技术对没有源码的类进行代理。

            第三方类库实现代理比较经典和常用的是cglib,3.2.0.RELEASE版本之前【201212月】,spring还依赖于cglibjar包,但是之后就不依赖cglibjar包了,因为spring为了避免版本冲突的问题,已经将cglib的代码集成到spring框架内部了。

2.3 使用织入的方式实现AOP编程

          织入就是不创建代理类,而是直接对目标类进行修改(类编译时修改或者类装载时修改),直接在目标类的方法中插入额外的代码。注意这和静态代理和动态代理都不同,此时并不生成代理类,而是对目标类动了手脚。

Aspectj就是一个支持用织入的方式来实现AOP编程的工具,如果要使用Aspectj的织入功能,需要使用到Aspectj提供的编译器,使用不是很方便。Aspectj提供了两种织入方式:编译期织织入和类加载期织入。类加载期织入也就是LTW(Load Time Weaving)。

Spring框架实现AOP时用到了Aspectj工具的部分功能(所以需要引入aspectjweaver这个jar),但是Spring没有用织入的方式来提供AOP编程,使用的还是动态代理技术。

3  Spring 框架中AOP的使用【重点】

3.1 Spring框架中 AOP 相关的一些概念和术语

(1) JoinPoint(连接点) 【重点】

    连接点是程序执行时的一些边界,例如类初始化前,初始化后,方法调用前,方法被调用后,方法抛出异常后。

(2)Pointcut(切点)【重点】

Pointcut(切点)是一些特殊的JointPoint(连接点),是你绑定了Advice(通知)的JointPoint(连接点)。在使用时,Pointcut(切点)体现为一个规则表达式,该表达式可以让程序找出特定的那些JoinPoint(连接点)

(3)Advice(通知)【重点】

当程序运行到满足条件的边界点时,AOP机制要回调你定制的某个些方法,这些方法就是Advice(通知),有的资料中把Advice叫增强。在使用时,Advice(通知)体现为一个可执行的方法

【Advice的类型主要有Before,After,AfterReturning,AfterThrowing,Around】

(4)Aspect(切面)【重点】

一些Pointcut(切点)和Advice(通知)就构成了一个Aspect(切面)。在使用时,Aspect对应一个

(5)其他一些概念

 Advisor(顾问)、Target(目标对象)、Proxy(代理)、Weaving(织入)。

3.2 Spring 框架中AOP的用法演示【重点】

    使用集成开发工具eclipse做演示,项目构建工具使用maven。

    视频地址:

  【JAVA中面向切面的编程技术(简称AOP)】【-陈杰第1部分】_2018-09-01

  【JAVA中面向切面的编程技术(简称AOP)】【-陈杰第2部分】_2018-09-01

*********************************************************************************************************************

猜你喜欢

转载自blog.csdn.net/pucao_cug/article/details/82498339