AOP

作者: 皮皮力_996a | 来源:发表于2019-03-10 21:13 被阅读0次

java创建对象的方法(5种):

Spring AOP:

spring分为:
  • 1、IOC/DI
  • 2、AOP

AOP的使用场景:

  • 日志和事务
  • 概念:AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。

AOP核心概念

  • Aspect(切面):一个关注点的模块化,这个关注点可能会横切多个对象。在Spring AOP中,切面可以使用基于模式或基于@Aspect注解的方式来实现。
  • Join Point(连接点):在程序执行过程中某个特定的点,比如方法调用的时候或异常处理的时候。在Spring AOP中,一个连接点总是表示一个方法的执行。
  • Advice(通知/增强):在切面的某个特定的连接点上执行的动作。许多AOP框架(包括Spring)都是以拦截器做通知模型,并维护一个以连接点为中心的拦截器链。
  • Pointcut(切点):匹配连接点的断言。通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行。
  • Introduction(引入):用来给一个类型声明额外的方法或属性。Spring允许引入新的接口(以及一个对应的实现)到任何被代理的对象。
  • Target Object(目标对象):被一个或多个切面所通知的对象。这个对象永远是一个被代理的对象。
  • AOP Proxy(AOP代理):AOP框架创建的对象,用来实现切面契约。
  • Weaving(织入):把切面连接到其他应用程序类型或者对象上,并创建一个被通知的对象。

代理模式的例子:

Move类
package com.spring;
public interface Move {
void move();
}
Car类
package com.spring;

public class Car implements Move {
@Override
public void move() {
System.out.println("Car is moving...");
}
}
Tank类
package com.spring;

public class Tank implements Move {
@Override
public void move() {
System.out.println("Tank is moving...");
}
}
TankProxy类
package com.spring;
public class TankProxy implements Move {
private Move tpublic TankProxy(Move t) {
    this.t = t;
}
@Override
public void move() {
    System.out.println("start");
    t.move();
    System.out.println("stop");
}
}
运行结果
image.png

相关文章

网友评论

      本文标题:AOP

      本文链接:https://www.haomeiwen.com/subject/rriupqtx.html