第三章 面向切面编程
一、定义
AOP:Aspect Oritened Programming面向切面编程
OOP:Object Oritened Programming面向对象编程
原理:其实AOP是面向对象编程的一个补充,将多个方法相同位置的代码,提出出来存入到另外一个切面类中进行统一管理,这个管理的过程叫做面向切面编程。AOP是一个思想,不是一个技术,要想实现这个AOP思想,可以使用动态代理技术来实现
代理:帮助别人去完成一件事
委托:请别人帮忙去完成一件事,自己可以不完成
动态代理:编程语言的专业词汇,在JVM运行时,随机产生一个对象帮助委托对象去完成一件事。
Java原生语言是一个静态语言,无法在不声明类的前提下,创建对象。但是为了能够实现面向切面编程,Java语言推出反射proxy技术,在没有类的情况下,根据实际情况,动态的创建需要的对象。由于反射技术比较复杂,非常不好理解,spring框架在此基础上推出了AOP字模块,对复杂代码进行了封装,大大简化了AOP实现的难度。
二、实现spring AOP步骤:
1、只需要创建两个对象:1. 业务类 2. 切面类(日志)
2、将两个类的对象注册到Spring容器中去,在运行的时候,Spring会通过反射技术动态的创建一个代理类,帮助执行核心业务代码和日志的输出。
AOP的本质:实现核心业务代码与日志代码的分离,降低耦合
重要注解
@Aspect 表示该类为切面类
@Component 表示该类的对象注入到Spring容器中
方法的注解
@Before 表示该方法执行的具体位置和时机,具体代表该方法在切点(核心业务代码)之前执行
@After 表示该方法再切点执行后执行
@AfterReturning 代表该方法再切点执行后执行,获取切点方法的返回值
joingPoint切点(核心业务代码)
那些将要去的地方,都是素未谋面的故乡

浙公网安备 33010602011771号