今天是刘小爱自学Java的第123天。
感谢你的观看,谢谢你。
学过很多面向XX编程,比如:
面向过程编程,面向对象编程,面向接口编程,现在又是面向切面编程。
但是不管如何,说来说去最终都是面向搜索引擎编程:面向百度编程,面向谷歌编程。
今日学习内容安排:
- AOP的引入,它到底是干嘛的?
- AOP面向切面编程的思想概述,以及其常见术语的解释说明。
- 两种AOP底层实现机制,同时也是对动态代理的再一次回顾学习。
本来是打算将AOP知识点糅合到一篇文章中说明的,但是内容实在是太多了,写了近三千字一半都还没有学到,看来还是得慢慢来了。
一、AOP的引入
在学它之前,我们先要搞清楚它是干嘛的?
dao层的方法基本都是增删改查,现在需要将所有方法都增加打印日志的功能,怎么办?
如果我们每个方法里面都实现打印日志的功能,那也太复杂了,所以选择封装:
①方法的封装
我们将打印日志的功能封装到一个特有方法中,只需要在其它方法中调用该方法即可。
但是这样就有一个很大的问题:
dao层不只有userDao这个类,还有其它的类,也需要打印日志的功能,那怎么办?
②继承
我们将打印日志的功能封装到一个类中,哪个类需要该方法就继承它即可,根据继承的原则:子类可