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

兰州电商网站建设网站做seo收录

兰州电商网站建设,网站做seo收录,做网站的主要任务,付运费送东西的网站怎么做目录 一、什么是AOP?二、AOP 的环绕通知2.1 切点以及切点表达式2.2 连接点2.3 通知#xff08;Advice#xff09;2.4 切面(Aspect)2.5 不同通知类型的区别2.5.1 正常情况下2.5.2异常情况下 2.6 统一管理切点PointCut 一、什么是AOP? Aspect Oriented Programming#xff… 目录 一、什么是AOP?二、AOP 的环绕通知2.1 切点以及切点表达式2.2 连接点2.3 通知Advice2.4 切面(Aspect)2.5 不同通知类型的区别2.5.1 正常情况下2.5.2异常情况下 2.6 统一管理切点PointCut 一、什么是AOP? Aspect Oriented Programming面向切面编程 AOP是Spring框架的第⼆⼤核⼼(第⼀⼤核⼼是IoC) AOP是一种思想是对某一类事情的集中处理。 其中在下面的学习中我们会学习到拦截器、统一异常处理统一结果处理等这些都是运用了AOP的统一思想来实现的。 拦截器实现AOP思想作用的维度是前端对后端进行的一次请求和一次响应主要是检索前端传来的URL如果检索后返回True则可以进入Controller开始执行代码如果返回的为False则表示失败直接被拦截在外面无法执行代码。 统一结果处理则是使用注解ControllerAdvice(通知类注解)实现ResponseBodyAdvice接口对响应的结果进行统一处理对齐进行统一的包装后响应其中如果数据类型为String类型的话要进行特殊处理使用ObjectMapper的方法将String格式转为Json格式再次响应。 统一异常处理也是使用注解ControllerAdvice(通知类注解)以及在方法上使用ExceptionHandler注解在全部的程序中如果遇到运行时异常则会自动捕捉进行抛出注编译时异常是写代码过程中出现的不手动解决就无法运行程序。 接下来我们要学习的是运用了AOP思想进行AOP的环绕处理 二、AOP 的环绕通知 2.1 切点以及切点表达式 切点通知类型切点表达式 切点表示了为该方法提供一组规则来对程序进行功能增强 通知类型有以下5种 Around:环绕通知,此注解标注的通知方法在目标方法前,后都被执行 Before:前置通知,此注解标注的通知方法在目标方法前被执行 After:后置通知,此注解标注的通知方法在目标方法后被执行,⽆论是否有异常都会执行 AfterReturning:返回后通知,此注解标注的通知方法在目标方法后被执行,有异常不会执行 AfterThrowing:异常后通知,此注解标注的通知方法发⽣异常后执行 如下图所示 在该方法上的Around,表示的是环绕处理是一种通知类型 其后面的execution(* com.example.demo.controller..(…)) 表示的是该通知类型作用的范围是切点表达式 2.2 连接点 满足切点表达式规则的方法就是连接点 在该图中public recordTime方法就是连接点 2.3 通知Advice 通知就是具体要做的内容简单来说就是方法内执行的代码内容 如图所示 该图中标红的位置就是通知内容在AOP面向切面编程当中,我们把这部分重复的代码逻辑抽取出来单独定义,这部分代码就是通知的内容 2.4 切面(Aspect) 首先使用注解Aspect来表示该类是一个切面类 然后使用不同的通知类型进行处理,如图表示的是环绕通知类型 在处理过程中ProceedingJoinPoint.proceed()让原始方法执行 切面(Aspect)切点(Pointcut)通知(Advice) 以下代码表示一个完整的切面类: import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component;Slf4j Aspect Componentpublic class TimeAspect {/*** 记录方法耗时*/Around(execution(* com.example.demo.controller.*.*(..)))public Object recordTime(ProceedingJoinPoint pjp) throws Throwable {//记录方法执行开始时间long begin System.currentTimeMillis();//执行原始方法Object result pjp.proceed();//记录方法执行结束时间long end System.currentTimeMillis();//记录方法执行耗时log.info(pjp.getSignature() 执行耗时: {}ms, end - begin);return result;} }2.5 不同通知类型的区别 2.5.1 正常情况下 环绕通知 Around 标识的通知方法包含两部分,⼀个前置逻辑,⼀个后置逻辑.其 中前置逻辑会先于 Before 标识的通知方法执行,后置逻辑会晚于 After 标识的通知方法执行 2.5.2异常情况下 程序发⽣异常的情况下 • AfterReturning 标识的通知方法不会执行 AfterThrowing 标识的通知方法执行了 • Around 环绕通知中原始方法调⽤时有异常通知中的环绕后的代码逻辑也不会在执行了(因为 原始方法调⽤出异常了) 注意事项: • Around 环绕通知需要调⽤ ProceedingJoinPoint.proceed() 来让原始方法执行,其他 通知不需要考虑目标方法执行. • Around 环绕通知方法的返回值,必须指定为Object,来接收原始方法的返回值,否则原始方法执 行完毕,是获取不到返回值的. • ⼀个切面类可以有多个切点 2.6 统一管理切点PointCut 统一管理切点就是对于复杂的切点表达式进行提取然后用PointCut注解方法进行单独声明再本类下面的程序中如果用到该切点表达式则直接使用注解后的方法即可如果在其他类中使用该声明过后的切点表达式则需要使用全路径限定名该方法即可 本类使用注解后的切点表达式代码如下 Slf4j Aspect Componentpublic class AspectDemo {//定义切点(公共的切点表达式)Pointcut(execution(* com.example.demo.controller.*.*(..)))private void pt(){}//前置通知Before(pt())public void doBefore() {//...代码省略}//后置通知After(pt())public void doAfter() {//...代码省略}//返回后通知AfterReturning(pt())public void doAfterReturning() {//...代码省略}//抛出异常后通知AfterThrowing(pt())public void doAfterThrowing() {//...代码省略}//添加环绕通知Around(pt())public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {//...代码省略} }在其他类中调用该切点表达式代码如下 Slf4j Aspect Componentpublic class AspectDemo2 {//前置通知Before(com.example.demo.aspect.AspectDemo.pt())public void doBefore() {log.info(执行 AspectDemo2 - Before 方法);}}当切点定义使⽤private修饰时,仅能在当前切面类中使⽤,当其他切面类也要使⽤当前切点定义时,就需要把private改为public.引⽤方式为:全限定类名.方法名() ### 2.7 切面优先级Order 在切面类中会有多个切点同时匹配成功那么该如何进行执行顺序呢 应该使用注解Order数字来表示优先级顺序Order注解标识的切面类,执行顺序如下: • Before 通知数字越⼩先执行 • After 通知数字越⼤先执行Order 控制切面的优先级,先执行优先级较⾼的切面,再执行优先级较低的切面,最终执行目标方法.
http://www.hkea.cn/news/14426268/

相关文章:

  • 郎创网站建设80s网站建设工作室
  • 公司如何建站专业网站设计 软件
  • 社保网站是每月1-6号都是在建设中的吗易申建设网站
  • 如何建一个视频网站河南省电力工程建设企业协会网站
  • 会声会影免费模板网站linchong.wordpress
  • 做网站的功能是什么安徽网站设计方案
  • 莆田网站关键词优化福州搜索优化技术
  • 网站做多长时间才有流量软件外包公司是干什么的
  • 有关于网站建设的论文淘宝自己建的网站
  • 网站建设首选唯美谷济南定制网站制作公司
  • 济南手机网站建设公司松原手机网站开发公司
  • 灰色网站模板网站设计如何收费
  • 网站建设江阴建设银行不良资产处置网站
  • 网站建设都需要哪些工具或软件有没有帮忙做推广的网站
  • 微信端微网站怎么做邢台建网站
  • 网站建设简运维 简历沈阳学习做网站
  • 四川住房与城乡建设部网站凡科网站建设视频
  • 让别人做的网站不给源代码站长工具爱情岛
  • 免费注册网站的平台网站分几种类型
  • 网站搭建免费域名深圳做夜场做网站
  • 网站建设 300元厦门网站制作网页
  • 买拆车件上什么网站宁波哪家做网站好
  • 北京做一个网站多少钱沈阳市三好街网站建设公司
  • 鄂州网站设计制作东莞大朗网站建设哪家口碑好
  • 虚拟主机 删除网站缓存二手房网站建设方案
  • 电子商务网站开发书网站假设公司排名
  • 网站建设哪里好 厦门苏州网站推
  • 陕西 建设工程有限公司网站自己电脑做的网站如何映射到公网
  • 站长之家psd素材网站建设的作业模板
  • 学做软件的网站有哪些内容代码级优化wordpress