AOP
Spring框架
核心一:IOC - 控制反转 / DI - 依赖注入(控制反转,把创建对象的权利交给Spring)
核心二:AOP(面向切面编程,在不改变源代码的情况下对代码进行增强,动态代理,静态织入)
核心作用:解耦
业务层能够控制事务
开闭原则
开:扩展
闭:不修改,子类继承
继承:在不改变父类方法的前提下,对父类的扩展
AOP( 面向切面编程 )
思想 —— 面向切面编程
实现 —— 动态代理
AOP思想的作用:
1、在不改变原程序代码前提下,对方法功能增强
2、像添加插件一样,任意插拔。(程序更加灵活)
AOP:在不修改源代码的基础上,对原有功能进行增强
切入思想
<——
代理工厂
重点:method invoke
JDK增强
能不能增强,看目标方法的对象是怎么创建的!
开发阶段分别开发
运行阶段组装运行
目标对象
连接点
切面类
通知
织入
切入点 + 切面类
多个切面类的执行顺序
根据类名的字母顺序和数字顺序排列优先级
先进后出
执行顺序:
切面类1 前置
切面类2 前置
目标类
切面类2 后置
切面类1 前置
使用SpringAop完成在业务层类中的方法上打印日志
** 基础步骤
1、创建模块、导入依赖
2、创建实体类
3、创建业务层接口和实现类
不操作数据库,不写Dao
4、创建日志类
切面类
5、创建配置类
@Conponent
6、测试
** 动态代理步骤
1、在增强类中配置切点和切面
@Before —— log.Logger
2、在配置类中激活切面代理
config.SpringConfig
@ComponentScan("com.itheima") 扫描
@EnableAspectJAutoProxy // 开启切面代理
3、测试
————————————————
环绕通知
切入点表达式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通