AOP是一种面向切面的编程,是基于动态代理的,对原有代码毫无入侵性,把和主业务无关的事情,放到代码外面去做。所以当你下次发现某一行代码经常在你的Controller里出现,比如方法入口日志打印,那就要考虑使用AOP来精简你的代码了。
也可以用一句话去概括:在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
AOP分为五种通知类型,分别是前置通知、正常返回通知、异常返回通知、环绕通知。
前置通知:在目标方法执行之前执行执行的通知。
环绕通知:在目标方法执行之前和之后都可以执行额外代码的通知
后置通知:在目标方法执行之后执行的通知
异常通知:在目标方法抛出异常时执行的通知
最终通知:是在目标方法执行之后执行的通知。
和后置通知不同之处在于,后置通知是在方法正常返回后执行的通知,如果方法没有正常返-例如抛出异常,则后置通知不会执行。而最终通知无论如何都会在目标方法调用过后执行,即使目标方法没有正常的执行完成。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209458.html原文链接:https://javaforall.net
