什么是AOP:
AOP(Aspect Oriented Programming),面向切面编程,是对OOP(面向对象编程)的一种延续,函数式编程的一种衍生范型
项目场景:
最常见的一种应用,用作日志审计/接口鉴权/异常处理
在spring中我们常见的AOP场景:实现事务管理 (调用方法前开启事务,调用方法后关闭事务) 事务管理
原理分析:
讲了这么多应用,那我们应该会很疑惑,那是如何实现的呢?我在这里先讲AOP的基本原理,然后讲具体应用
AOP实际上是对方法的增强,在进入service之前进行请求处理,处理完业务之后对返回值进行处理.使用AOP很灵活的批量对业务类进行处理
业务代码:
下面以审计日志打印与异常处理为例(PS:虽然我觉着直接贴代码很不专业,但是都是智慧的结晶,后面可以直接拿来用):
做鉴权处理
不需要鉴权的类如何实现?
那如果我们只想对特定的类进行处理该如何做呢?
AOP与Filter的区别?
Filter也可以做一些拦截统计