0
点赞
收藏
分享

微信扫一扫

Spring AOP面向切面编程

郝春妮 2022-05-01 阅读 138
Spring

AOP面向切面编程

1、AOP概述

AOP面向切面编程,就是在层与层之间加入代码,成为切面代码,主要目的是在某些情况下,让层与层之间的耦合度进一步降低。使用接口+IOC+DI已经能够很好的进行解耦合了。
AOP比较难理解的,需要准备一些场景代码讲解。

2、修改Service层的代码,增加功能性代码

public void addUser() {
		System.out.println("#记录日志");
		System.out.println("#权限控制");
		System.out.println("#开启事务");
		System.out.println("调用Dao层的方法,完成新增用户...");
		System.out.println("#提交事务");
	}

业务代码和功能代码混淆在一块了,比较乱,混杂。相当于把日记的内容和上课记笔记的内容写一个一起。
企业开发要保证六字真言:高内聚,低耦合。
高内聚:每一个组件,每一个层只干自己的事情,绝不越界。 AOP
低耦合:每个组件,每一个层之间耦合度降到最低。接口+Spring IOC+DI

3、AOP的概念,解决功能代码和业务代码的分离

在这里插入图片描述

4、代理模式 --AOP底层的核心实现技术思想

代理模式的核心思想:在不改变一个类的情况下增强该类中的方法

  • (1)静态代理
    可以解决代码混杂的问题,无法解决代码重复的问题
  • (2)动态代理 --java提供Proxy类
    既可以解决代码混杂的问题,也可以解决代码重复的问题
    缺陷:基于接口的方式实现的,不在接口中存在的方法是访问不了的
  • (3)第三方动态代理 – cglib代理
    既可以解决代码混杂的问题,也可以解决代码重复的问题
    cglib代码是基于继承实现的,对于非接口的方法依然是可以访问的
举报

相关推荐

0 条评论