1反射的概念和代码步骤
<!--反射机制:指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为Java语言的反射机制。-->
<!--代码步骤 1.获取类对象 2.利用反射机制创建对象 3.获取成员变量并使用-->
2AOP和OOP的区别
<!--★aop:即在不修改源代码的基础上,在某个节点上加一些东西,让方法变得更强-->
<!--★特别长的祖传代码一修改就不能用,那我们就不修改 而是找某个地方去添加一些东西;-->
一 AOP概念
1 什么是 AOP
-
AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
<!--例如吃饭拿起筷子吃饭 将拿起筷子 切开 然后加点醋;-->
-
<!--编程中,方法与方法间,模块之间,对象之间,以及每个层之间也是一个个切面(web层--》网关层--》服务层--》数据层 每层之间也是一个切面)-->
<!--★ 动态代理底层:通过反射的技术 找到各个对象(构造方法),方法,属性等等的信息,然后把需要的拼凑起来;-->
<!--★动态代理他的底层的本质就是反射-->
<!--★反射:面试不会问什么,但是操作性很强-->
-
AOP 是 OOP(面向对象编程) 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
2 AOP 的作用及其优势
-
作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强
-
优势:减少重复代码,提高开发效率,并且便于维护
3 AOP 的底层实现
-
AOP 的底层是通过 Spring 提供的的动态代理技术实现的。在运行期间,Spring通过动态代理技术动态的生成代理对象,代理对象方法执行时进行增强功能的介入,在去调用目标对象的方法,从而完成功能的增强。
<!--本质是生成了一个代理对象 代理对象是给目标对象做代理的-->
4 常用的动态代理技术
-
JDK 代理 : 基于接口的动态代理技术 <!--同一个父类接口-->
-
cglib 代理:基于父类的动态代理技术 <!--以目标对象为父类-->
<!--★代理对象 以目标对象为模板,让他增强;也就是对象不好看,创建一个代理对象并给他化妆,弄发型,搞穿搭,让他变强;-->