1.IOC与AOP概念 IOC:控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理。使用IOC的目的是为了降低耦合度。 AOP:面向切面编程,通过预编译方式和运行期间动态代理实现程
1.IOC与AOP概念IOC:控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理。使用IOC的目的是为了降低耦合度。 AOP:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP的底层实现是基于动态代理(实现方式是当切入接口时,使用JDK原生动态代理;当切入普通方法时,使用cglib动态代理)。 2.为何使用动态代理随着业务的不断扩展: (1)日志功能:如果日志代码修改,需要修改多处。 (2)校验功能:如果多处需要校验,需要修改多处。 这时就需要使用动态代理来解决问题,动态代理的实现方式有两种: [1]JDK原生动态代理:缺点是必须基于接口完成 [2]cglib动态代理:他可以不用基于接口完成 2.1 JDK原生动态代理? 2.1.1 MathService接口类
2.1.2 MathServiceImpl实现接口类
2.1.3 ProxyFactory动态代理工厂
2.1.4 测试类
2.2 cglib动态代理? 2.2.1 MathServiceImpl类
2.2.2 ProxyFactory动态代理工厂注意: (1)引入cglib的jar包.
(2)创建一个代理类工厂并实现接口MethodInterceptor
2.2.3 测试类
3.AOP动态代理3.1 添加对应依赖
3.2 配置spring.xml文件
3.3 MathService接口类
3.4 MathServiceImpl实现接口类
3.5 LogAspect类
3.6 测试类
|
2021-06-05
2021-05-27
2021-05-26
2021-06-05
2021-05-16