关于学习springAOP的小结
一、动态代理是什么?
首先需要知道静态代理是什么
代理这种角色在生活中十分常见 当你需要租房子的时候 你可以直接去找中介 中介负责从房东手上代理房源
这样我们只需要联系中介 便可以租到房子 而房东只需要把房子交给中介就可以实现房子的托管,而中介可以直接实现签合同,缴纳房租等一系列其他的操作 这样我们就可以不用直接联系房东 便可租到房子 而房子 也是房东托付给中介进行代理的。这里的中介便是静态代理。联系到java代码里面 我们可以知道 当我们创建一个房东类 房东来实现了一个包含租房方法的接口,再来一个代理类 这个代理类也来实现房东类实现的接口 这样我们直接在代理类里面实例化房东 再调用房东的租房方法来实现代理类的租房方法这样便可以实现租房动作的代理转移。
不仅如此 我们还可以在租房方法之外 实现一些其他的房东并没有实现的方法。比如说租房合同的签订,房款的交付,这些方法都可以在代理类里面同时实现 我们只需要在main方法里面实例化房东 并把房东交付给这个代理 再对代理进行方法的调用 我们便可以实现静态代理 。缺点十分明显 对于每一个房东 我都需要来创建一个全新的代理类 这大大加重了编程的任务 因此我们引进动态代理 来实现 但我们创造一个新的类的时候 我们可以实现自动的把这个代理进行创建。而动态代理 便可以交给spring来进行实现。
二、aop切面编程是什么
个人理解 我们平常进行开发的时候 都是纵向开发 我们从上到下进行开发 从不同的层次来进行纵向开发 而切面编程 顾名思义是从切面来进行处理 我们对于一些切面上的业务 需要横向的把业务代码加到这里面去而 aop切面编程就是利用动态代理来进行业务逻辑的扩充。总结
提示:明天实现使用spring来进行aop编程。