当前位置: 首页 > news >正文

天河网站建设哪里好营销类网站建设需要注意的问题

天河网站建设哪里好,营销类网站建设需要注意的问题,网站链接推广怎么赚钱,项目介绍ppt模板前置通知环绕通知后置通知最终通知异常通知 API类似#xff0c;只是生效的时机不一样#xff0c;并且#xff0c;不能保证#xff0c;各个通知的顺序 try {//前置通知before();//环绕通知#xff0c;内部是执行的方法around(proxy,method,args,methodProxy);//后置通知a…前置通知环绕通知后置通知最终通知异常通知 API类似只是生效的时机不一样并且不能保证各个通知的顺序 try {//前置通知before();//环绕通知内部是执行的方法around(proxy,method,args,methodProxy);//后置通知afterReturn(); } catch (Throwable e) {exception();//异常通知 }finally {after();//最终通知 } 前置通知 被访问的方法执行之前执行的通知 先执行通知的方法然后再执行被访问的方法本身 public void f2(JoinPoint joinPoint){ System.out.println(----------前置通知); //被访问方法的参数 Object[] args joinPoint.getArgs(); //被访问方法所在类的bean对象 Object target joinPoint.getTarget(); //被访问的方法 MethodSignature signature (MethodSignature) joinPoint.getSignature(); Method method signature.getMethod(); System.out.println(method.getName()被调用了传入了参数 Arrays.toString(args)---所在类target); } 环绕通知 public Object aroundMethod(ProceedingJoinPoint joinPoint) throws Throwable {System.out.println(环绕通知开始);//调用方法必须写的如果不写目标方法不会被调用//Object o 是被执行方法的返回值Object o joinPoint.proceed();//MethodSignature signature (MethodSignature) joinPoint.getSignature();Method method signature.getMethod();Object[] args joinPoint.getArgs();//method.invoke(12);System.out.println(环绕通知结束method.getName());return o; } 配置通知 aop:aspect reftest1!--前置通知,在切入点的方法,被访问之前,执行的方法--aop:before methodf2 pointcut-refq3/aop:around methodaroundMethod pointcut-refq3/aop:after-throwing methodf3 pointcut-refq3/aop:after methodf4 pointcut-refq3/aop:after-returning methodf5 pointcut-refq3/ /aop:aspect SpringAOP原理 动态代理 注解AOP ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:aophttp://www.springframework.org/schema/aopxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsd context:component-scan base-packagecom.javasm/!--开启AOP注解--aop:aspectj-autoproxy/ /beans //aop:aspect refaspect2 Component(aspect2) Aspect public class TestAspect2 {//切点标记Pointcut(execution(* com.javasm.*.service.*.*.query*(..)))void f1(){}Before(f1())void before(JoinPoint joinPoint){System.out.println(注解前置通知);}Around(f1())Object aroundTest(ProceedingJoinPoint joinPoint) throws Throwable {System.out.println(-----环绕通知开始);Object proceed joinPoint.proceed();System.out.println(------环绕通知结束);return proceed;}After(f1())void after(JoinPoint joinPoint){System.out.println(最终通知);}//AfterReturning(f1())AfterReturning(value f1(),returning msg)void afterReturn(JoinPoint joinPoint,Object msg){System.out.println(##########后置通知########返回值:msg);}//AfterThrowing(f1())AfterThrowing(value f1(),throwing e)void afterThrowing(JoinPoint joinPoint,Throwable e){System.out.println(异常通知:e);} } 自定义注解 自定义注解搭配AOP注解,灵活的控制方法 案例: 想在项目中记录日志 但是不是每个模块每个方法都记录 哪个方法需要记录,现在还不确定,但是要提前把业务逻辑写好 利用自定义注解,哪个方法需要增加日志,就在哪个方法上面加上自定义注解 自定义注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface SaveLog {//String value(); } 切面类 Component Aspect public class SaveLogAspect {ResourceLogService logService;//方法执行结束之后,保存日志AfterReturning(annotation(com.javasm.aspect.SaveLog))public void saveLog(JoinPoint joinPoint){String msg %s方法,在%s时间,被调用了,参数是%s;//方法MethodSignature signature (MethodSignature) joinPoint.getSignature();Method method signature.getMethod();String methodName method.getName();//时间SimpleDateFormat simpleDateFormat new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);String time simpleDateFormat.format(new Date());//参数String parameters Arrays.toString(joinPoint.getArgs());msg String.format(msg,methodName,time,parameters);logService.save(msg);} } SaveLog 控制到类 案例: 统计方法运行消耗的时间 统计某一个类所有的方法 within必须是在类级别生效 Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) public interface Time { } Component Aspect public class TimeAspect {Around(within(com.javasm.aspect.Time))public Object around(ProceedingJoinPoint joinPoint) throws Throwable {long start System.currentTimeMillis();Object proceed joinPoint.proceed();long time System.currentTimeMillis() - start;String msg %s方法,运行消耗的时间是%s毫秒;MethodSignature signature (MethodSignature) joinPoint.getSignature();String methodName signature.getMethod().getName();System.out.printf(msg,methodName,time);return proceed;} } Time 配置类启动 Configuration ComponentScan(com.javasm) EnableAspectJAutoProxy//开启注解AOP public class JavasmConfig {} AnnotationConfigApplicationContext applicationContext new AnnotationConfigApplicationContext(JavasmConfig.class);
http://www.zqtcl.cn/news/357250/

相关文章:

  • 南京越城建设集团网站网站空间续费多少钱
  • 深圳nft网站开发公司如何制作微信公众号里的小程序
  • 做网站美工要学什么聊城网站建设电话
  • 南通个人网站建设快手秒刷自助网站
  • html5 做网站网站开发找工作
  • 聚成网站建设艺术公司网站定制中心
  • 阿里云上可以做网站吗十六局集团门户网
  • 门户网站建设询价函有哪些网站可以做设计挣钱
  • 如何建立自己网站奔奔网站建设
  • 自由做图网站做网站所用的工具
  • 广西南宁做网站专业网站建设案例
  • 视屏网站的审核是怎么做的群辉 搭建wordpress
  • 嘉兴网站快速排名优化衡阳网站建设制作
  • 建设公共资源交易中心网站成都APP,微网站开发
  • dede网站地图修改厦门百度seo
  • 可以做行程的网站网站详情怎么做的
  • 网站建设心得8000字营销型网站建设的注意事项
  • 织梦购物网站整站源码哈尔滨网站建设技术托管
  • 做推广的网站微信号企业免费网站制作
  • 做旅游网站的引言上海公司网站建设哪家好
  • 找项目去哪个网站网站建设一条龙全包
  • 网站 数据库 模板网站系统建设合作合同范本
  • 网站空间租赁费用企业网站建设需要多少钱知乎
  • 免费建网站哪个模板多浅谈学校网站建设
  • 精致的个人网站手机网站建设基本流程图
  • 优秀网站网页设计图片主机屋做网站视频
  • 安徽网站建设电话编程一个最简单游戏代码
  • 西宁圆井模板我自己做的网站在线平面设计图
  • 浦口区网站建设技术指导做软件需要网站吗
  • 丹东有做公司网站的吗搜索引擎 wordpress