什么是AOP?

AOP是一种面向切面的编程,是基于动态代理的,对原有代码毫无入侵性,把和主业务无关的事情,放到代码外面去做。所以当你下次发现某一行代码经常在你的Controller里出现,比如方法入口日志打印,那就要考虑使用AOP来精简你的代码了。

也可以用一句话去概括:在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。

AOP分为五种通知类型,分别是前置通知、正常返回通知异常返回通知、环绕通知。

前置通知:在目标方法执行之前执行执行的通知。

环绕通知:在目标方法执行之前和之后都可以执行额外代码的通知

后置通知:在目标方法执行之后执行的通知

异常通知:在目标方法抛出异常时执行的通知

最终通知:是在目标方法执行之后执行的通知。

和后置通知不同之处在于,后置通知是在方法正常返回后执行的通知,如果方法没有正常返-例如抛出异常,则后置通知不会执行。而最终通知无论如何都会在目标方法调用过后执行,即使目标方法没有正常的执行完成。

你可能感兴趣的:(java面试,aop,java)