AOP:(Aspect Oriented Programming)面向切面编程;

OOP:(Object Oriented Programming )面向对象编程;

面向切面编程:基于OOP基础之上新的编程思想;

指在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的这种编程方式,面向切面编程;

eg.场景:计算器运行计算方法的时候进行日志记录;

加日志记录:

1)、直接编写在方法内部;不推荐,修改维护麻烦;     

日志记录:系统的辅助功能;

业务逻辑:(核心功能)

耦合;

2)、我们希望的是;

业务逻辑:(核心功能);日志模块;在核心功能运行期间,自己动态的加上;

运行的时候,日志功能可以加上;

可以使用动态代理来将日志代码动态的在目标方法执行前后先进行执行



动态代理:

1)、写起来难;

2)、jdk默认的动态代理,如果目标对象没有实现任何接口,是无法为他创建代理对象的

Spring动态代理难;Spring实现了AOP功能;底层就是动态代理;

1)、可以利用Spring一句代码都不写的去创建动态代理;

 实现简单,而且没有强制要求目标对象必须实现接口;

将某段代码(日志)动态的切入(不把日志代码写死在业务逻辑方法中)到指定方法(加减乘除)的指定位置(方法的开始、结束、异常。。。)进行运行的这种编程方式(Spring简化了面向切面编程)



代理对象和被代理对象唯一能产生关联就是实现了同一个接口



AOP专业术语;

AOP||动态代理||AOP专业术语;相关推荐

  1. AOP动态代理的实现机制

    2019独角兽企业重金招聘Python工程师标准>>> 1 AOP各种的实现 AOP就是面向切面编程,我们可以从几个层面来实现AOP. 在编译器修改源代码,在运行期字节码加载前修改字 ...

  2. spring中AOP动态代理的两种方式

    AOP动态代理的两种方式 Spring AOP动态代理的方式(spring的AOP默认是JDK Proxy) 浅谈这两种动态代理 JDK的动态代理,需要有实现接口 动态代理--JDK Proxy ⚫ ...

  3. Spring AOP源码解析——AOP动态代理原理和实现方式

    2019独角兽企业重金招聘Python工程师标准>>> Spring介绍 Spring(http://spring.io/)是一个轻量级的Java 开发框架,同时也是轻量级的IoC和 ...

  4. Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代理的问题

    Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代理的问题 参考文章: (1)Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代 ...

  5. Spring AOP动态代理

    导入依赖: <dependency><groupId>org.springframework</groupId><artifactId>spring-a ...

  6. Spring-Boot的动态代理AOP原理

    前言 Spring AOP使用了动态代理技术,动态代理在业界比较流行的实现方式有,CGLIB,Javassist,ASM等等. Spring动态代理实现方式 Spring采用了JDK和CGLIB两种方 ...

  7. Aop动态代理解决问题

    使用动态代理解决上述问题 代理设计模式的原理: 使用一个代理将对象包装起来, 然后用该代理对象取代原始对象. 任何对原始对象的调用都要通过代理. 代理对象决定是否以及何时将方法调用转到原始对象上. p ...

  8. [Spring手撸专栏学习笔记]——把AOP动态代理,融入到Bean的生命周期

    本文是学习<Spring 手撸专栏>第 10 章笔记,主要记录我的一些debug调试过程,方便后期复习.具体学习,大家可以去看一下这个专栏,强烈推荐. 方案 其实在有了AOP的核心功能实现 ...

  9. Spring Aop的7个专业术语

    1.连接点(Joinpoint) 所谓连接点是指那些被拦截到的点. 在spring中,这些点指的是方法,因为spring只支持方法类型的连接点. 2.切入点(Pointcut) 切入点是指我们要对哪些 ...

最新文章

  1. 第二章:1、函数求导
  2. java 倾斜校正_简述Java图像倾斜方法及实例
  3. (十二)java版b2b2c社交电商spring cloud分布式微服务:使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪...
  4. 显卡mx150和230哪个好_MX250显卡等于GTX1050?笔记本显卡MX250和MX150的区别对比
  5. Pandas处理数据太慢,来试试Polars吧!
  6. xgboost使用自定义的loss function
  7. 轻松搞定RabbitMQ(二)——工作队列之消息分发机制
  8. ecshop dizcuz会员整合
  9. 代码安全招聘岗位火热来袭(职位更新)
  10. u3d中如何添加avatar和状态机
  11. 虽迟但到,手眼标定代码实现篇
  12. 一阶系统开环传递函数表达式_带钢纠偏液压系统模糊PID 控制与仿真
  13. 中国慢病管理行业市场形势调查分析及价值研究报告2021-2027年版
  14. Keras机器翻译实战
  15. 已知一点经纬度及与另一点距离和航向,求另一点经纬度
  16. Sql Server常用命令整理篇:生成连续日期序列并循环
  17. 关于最近GD32F103替代STM32F103方案个人记录
  18. 三极管基极下拉电阻作用
  19. 2009经典语录,雷死人不要钱
  20. 开20个人,拿10个人的工资给大家涨薪!!

热门文章

  1. js面试题知识点全解(一作用域)
  2. 新建git仓库--留
  3. 2017.5.5-afternoon
  4. mysql 断电 启动不了 start: Job failed to start
  5. Redis常用数据结构和操作
  6. 【Android 界面效果9】9patch图片
  7. Mysql Replication 机制
  8. 怎么卸载Apache_pn服务-PHPnow使用问题
  9. SQL Server开发者Oracle快速入门
  10. Android 系统当中各种尺寸单位的定义及使用