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

手机网站知识长沙优化网站推广

手机网站知识,长沙优化网站推广,黄山网站建设怎么做,著名网站设计师切面编程 代码地址#xff1a; orbit-hub/spring-boot-samples at master (github.com)https://github.com/orbit-hub/spring-boot-samples/tree/master 切面执行顺序 Spring5以后顺序就一切正常 正常#xff1a;前置通知目标方法返回通知后置通知 异常: 前置通知目标方…切面编程 代码地址 orbit-hub/spring-boot-samples at master (github.com)https://github.com/orbit-hub/spring-boot-samples/tree/master 切面执行顺序 Spring5以后顺序就一切正常  正常前置通知目标方法返回通知后置通知  异常: 前置通知目标方法异常通知后置通知  try{      前置通知      目标方法的执行      返回通知  }catch(){      异常通知  }finally{      后置通知  } 1、使用注解形式 定义注解 Target({ ElementType.PARAMETER, ElementType.METHOD }) Retention(RetentionPolicy.RUNTIME) Documented public interface Log {public String title() default 11;}定义切面 Aspect Component public class LogAspect2 {/*** 处理请求前执行*/Before(value annotation(controllerLog))public void boBefore(JoinPoint joinPoint, Log controllerLog) {System.out.println(controllerLog.title());String name joinPoint.getSignature().getName();System.out.println(前置logStart()name....【args: Arrays.asList(joinPoint.getArgs()) 】);}/*** 处理完请求后执行** param joinPoint 切点*/AfterReturning(pointcut annotation(controllerLog), returning jsonResult)public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) {System.out.println(controllerLog.title());String name joinPoint.getSignature().getName();System.out.println(返回logReturn()name....【args: Arrays.asList(joinPoint.getArgs()) 】【result: jsonResult】);}//后置通知After(value annotation(controllerLog))public void logEnd(JoinPoint joinPoint, Log controllerLog){System.out.println(controllerLog.title());String name joinPoint.getSignature().getName();System.out.println(后置logEnd()name....【args: Arrays.asList(joinPoint.getArgs()) 】);}/*** 拦截异常操作** param joinPoint 切点* param e 异常*/AfterThrowing(value annotation(controllerLog), throwing e)public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e) {System.out.println(controllerLog.title());String name joinPoint.getSignature().getName();System.out.println(异常logError()name....【args: Arrays.asList(joinPoint.getArgs()) 】【exception: e】);}} 定义目标 Component public class HelloService {Logpublic String sayHello(String name){String result 你好name;System.out.println(result);int length name.length();return result --- length;} } 配置类 Configuration EnableAspectJAutoProxy ComponentScan(com.orbit.aop) public class MainConfig {} 测试类 public class AnnotationMainTest {public static void main(String[] args) {ApplicationContext applicationContext new AnnotationConfigApplicationContext(MainConfig.class);HelloService helloService applicationContext.getBean(HelloService.class);helloService.sayHello(zhangsan);}} 没有异常 11 前置logStart()sayHello....【args: [zhangsan]】 你好zhangsan 11 返回logReturn()sayHello....【args: [zhangsan]】【result: 你好zhangsan---8】 11 后置logEnd()sayHello....【args: [zhangsan]】 有异常 11 前置logStart()sayHello....【args: [zhangsan]】 你好zhangsan 11 异常logError()sayHello....【args: [zhangsan]】【exception: java.lang.ArithmeticException: / by zero】 11 后置logEnd()sayHello....【args: [zhangsan]】 Exception in thread main java.lang.ArithmeticException: / by zero 2、使用切入点表达式 切入点表达式语法 语法结构 execution([ 权限修饰符 ] [ 返回类型 ] [ 类全路径 ] [ 方法名称 ]([ 参数列表 ]) ) 举例 对 com.orbit.aop.service.HelloService类里面的 sayHello进行增强 execution(* com.orbit.aop.service.HelloService.sayHello(..)) 定义切面 Aspect //说明这是切面 Component //切面也是容器中的组件 public class LogAspect {//前置通知 增强方法/增强器Before(execution(* com.orbit.aop.service.HelloService.sayHello(..)))public void logStart(JoinPoint joinPoint){String name joinPoint.getSignature().getName();System.out.println(前置logStart()name....【args: Arrays.asList(joinPoint.getArgs()) 】);}//返回通知AfterReturning(value execution(* com.orbit.aop.service.HelloService.sayHello(..)),returning result)public void logReturn(JoinPoint joinPoint,Object result){String name joinPoint.getSignature().getName();System.out.println(返回logReturn()name....【args: Arrays.asList(joinPoint.getArgs()) 】【result: result】);}//后置通知After(execution(* com.orbit.aop.service.HelloService.sayHello(..)))public void logEnd(JoinPoint joinPoint){String name joinPoint.getSignature().getName();System.out.println(后置logEnd()name....【args: Arrays.asList(joinPoint.getArgs()) 】);}//异常AfterThrowing(value execution(* com.orbit.aop.service.HelloService.sayHello(..)),throwing e)public void logError(JoinPoint joinPoint,Exception e){String name joinPoint.getSignature().getName();System.out.println(异常logError()name....【args: Arrays.asList(joinPoint.getArgs()) 】【exception: e】);} } 没有异常 前置logStart()sayHello....【args: [zhangsan]】 你好zhangsan 返回logReturn()sayHello....【args: [zhangsan]】【result: 你好zhangsan---8】 后置logEnd()sayHello....【args: [zhangsan]】 有异常 前置logStart()sayHello....【args: [zhangsan]】 你好zhangsan 异常logError()sayHello....【args: [zhangsan]】【exception: java.lang.ArithmeticException: / by zero】 后置logEnd()sayHello....【args: [zhangsan]】
http://www.pierceye.com/news/621508/

相关文章:

  • 南宁霸屏网站开发国际数据公司idc
  • 百色建设网站广西建设监理协会网站
  • 天河营销型网站建设惠东网站设计
  • 网站建设用什么科目qq腾讯官网登录入口
  • 做网站硬件手表网站哪个最好知乎
  • 网站制作教程及流程网站优化常见的优化技术
  • 漯河网站建设-千弘网络品划网络做网站
  • 专业广州做网站公司简历网站免费
  • 广州h5网站制作公司营销网站的筛选
  • 国内最新新闻热点事件摘抄seo诊断书
  • 专业的免费网站建设哪家如何优化网站图片
  • 网站开发哪个更专业国家企业信用信息系统(全国)
  • 中小企业网站制作不了国外网站用什么dns
  • word网站的链接怎么做的网页设计大赛网站开发
  • dede网站模板 音响海外酒店 网站建设
  • 深圳 网站建设公司南宁网站忧化
  • 做油和米的网站山西省网站备案
  • 做网站有陪标现象吗成都建设网站专业公司
  • 莱阳 网站建设博罗做网站公司
  • 简易个人网站模板推广一款app的营销方案
  • 小城镇建设有关网站起飞页怎么做网站
  • 网站影响seo的标签网站用国外的服务器打不开
  • 仿站 做网站网站备案 图标
  • 网站怎么做留言提交功能wordpress个人支付接口
  • 有哪些做室内设计好用的网站廊坊网站制作推广
  • 做村易通网站站长要收费吗?elegant wordpress
  • 网站建设专业培训网站开发网页加载缓慢查询数据库慢
  • 网站开发中 视频播放卡做soho建立网站
  • 面试网站开发员安徽建工集团网站
  • 公司制作网站价格表app系统开发费用