AOP面向切面编程,底层是通过动态代理实现的。
1.动态代理:
jdk动态代理,使用jdk中的proxy,method,invacaitonhanderl创建代理对象。jdk动态代理要求目标必须实现接口。
cglib动态代理,创建代理对象,原理是继承,通过继承目标类,创建子类,要求
2.动态代理的作用:
不需要改动目标类中的方法,实现功能增强,减少重复代码,降低耦合。
切面:
切面,就是功能的意思,切面一般为非业务功能,切面一般为日志、事务、参数验证、权限管理等非业务通用功能。
AOP面向切面:
是动态代理的一种实现规范,更简单,逻辑更清晰。