做外贸需要自己建网站吗,安装wordpress教程,jeykll和wordpress,在记算机上登陆一个网站点怎么做目录什么是aop模拟aop配置什么是aop
什么是aop
作用 在程序运行期间#xff0c;在不修改源码的情况下对方法进行功能增强
优势 减少重复代码 提高开发效率 并且便于开发2.aop关键概念
模拟aop
目标接口
package com.lovely.proxy.aop;public interface TargetInterface …
目录什么是aop模拟aop配置什么是aop
什么是aop
作用 在程序运行期间在不修改源码的情况下对方法进行功能增强
优势 减少重复代码 提高开发效率 并且便于开发2.aop关键概念
模拟aop
目标接口
package com.lovely.proxy.aop;public interface TargetInterface {public abstract void save();
}
切点类
package com.lovely.proxy.aop;/*** author echo lovely* date 2020/7/28 16:07*/
public class Target implements TargetInterface {public void save() {try {System.out.println(1 / 0);} catch (Exception e) {System.out.println(e);}System.out.println(save running about aop...);}
}
切面类
package com.lovely.proxy.aop;import org.aspectj.lang.ProceedingJoinPoint;/*** 切面类 里面写增强方法 advice 通知方法* author echo lovely* date 2020/7/28 16:05*/
public class MyAspect {public void before() {System.out.println(前置增强...);}public void afterReturning() {System.out.println(后置增强...);}public Object around(ProceedingJoinPoint process) {System.out.println(环绕通知前...);Object obj null;try {obj process.proceed();} catch (Throwable throwable) {throwable.printStackTrace();}System.out.println(环绕通知后...);return obj;}public void afterThrowing() {System.out.println(异常拉...);}public void after() {System.out.println(最终通知...);}}
配置 !-- 目标对象 --bean idtarget classcom.lovely.proxy.aop.Target/bean!-- 切面对象 --bean idmyAspect classcom.lovely.proxy.aop.MyAspect/bean!-- aop配置 --!-- 配置织入 被增强的方法切点 要进行那些增强前置后置 --aop:config!-- 声明切面--aop:aspect refmyAspect!-- 切点表达式的抽取 --aop:pointcut idmyPointcut expressionexecution(* com.lovely.proxy.aop.*.*(..))/!-- 切面通知 切点 --!--aop:before methodbefore pointcutexecution(public void com.lovely.proxy.aop.Target.save())/--!-- 前后置通知 --!--aop:before methodbefore pointcutexecution(void com.lovely.proxy.aop.*.*(..))/aop:after-returning methodafterReturning pointcutexecution(void com.lovely.proxy.aop.*.*(..))/--!-- 环绕增强 --!--aop:around methodaround pointcutexecution(* com.lovely.proxy.aop.*.*(..))/--!-- 抛出异常通知 --!--aop:after-throwing methodafterThrowing pointcutexecution(void com.lovely.proxy.aop.*.*(..))/--!-- 最终通知 --!--aop:after methodafter pointcutexecution(void com.lovely.proxy.aop.*.*(..))/--!-- 引用切点表达式 --aop:around methodaround pointcut-refmyPointcut//aop:aspect/aop:config