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

域名解析网站登录云服务器怎么做网站

域名解析网站登录,云服务器怎么做网站,建设包银行官方网站,寮步网页设计Spring Boot Aop 执行顺序 1. 概述 在 spring boot 项目中#xff0c;使用 aop 增强#xff0c;不仅可以很优雅地扩展功能#xff0c;还可以让一写多用#xff0c;避免写重复代码#xff0c;例如#xff1a;记录接口耗时#xff0c;记录接口日志#xff0c;接口权限使用 aop 增强不仅可以很优雅地扩展功能还可以让一写多用避免写重复代码例如记录接口耗时记录接口日志接口权限等等。所以在项目中学习并使用 aop 是十分必要的。然而当我们在一个接口中使用多个 aop时就需要注意他们的执行顺序了。那么它们的执行顺序是怎样的呢如果不把这个问题搞明白那我们的程序就不可控这是不允许的这就是我们今天要讨论的问题。 2. 实现 AOP 2.1 通过注解实现 AOP MyAop: Target({ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) public interface MyAop { }MyAspect: Aspect Component public class MyAspect {Around(annotation(aop))public Object around(ProceedingJoinPoint joinPoint, MyAop aop) throws Throwable {return joinPoint.proceed();}}SampleController#myApi: RestController RequestMapping(/sample) public class SampleController {MyAopRequestMapping(/my-api)public String myApi() {return success;}}这样我们就通过使用注解的方式实现了 AOP 。 2.2 通过扫描包 比如我们有这样一个接口 SampleController#myApi2: RestController RequestMapping(/sample) public class SampleController {RequestMapping(/my-api2)public String myApi2() {return success;}}我们可以使用包扫描的方式进行拦截 Aspect Component public class My2Aspect {Around(execution(* com.fengwenyi.demo.springboot.aop.controller.SampleController.myApi2(..)))public Object around(ProceedingJoinPoint joinPoint) throws Throwable {return joinPoint.proceed();}}这样我们也就通过使用包扫描的方式实现了 AOP 。 3. 多个 AOP 3.1 分析 先提一个疑问多个AOP注解执行顺序是怎么样的呢如何设置执行顺序呢 比如APP 请求我们的 API 接口在请求到达 API 接口之前可以先执行 AOP1在执行 AOP2并且顺序不能变如下图 我们再拆解一下实际内部执行逻辑。 请求请求先进入到 AOP1再进入到 AOP2最后到达 API。 返回执行完 API再回到 AOP2最后回到 AOP1。 如下图 因为我们用的是 Around先进入Aop1再进入到aop2然后执行api执行完以后再返回到 aop2最后返回aop1。 3.2 代码实现 MyFirstAop Target({ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) public interface MyFirstAop { }MyFirstAspect: Slf4j Aspect Component Order(100002) public class MyFirstAspect {Around(annotation(aop))public Object around(ProceedingJoinPoint joinPoint, MyFirstAop aop) throws Throwable {log.info(MyFirstAspect#around execute start);try {return joinPoint.proceed();} finally {log.info(MyFirstAspect#around execute end);}}}MySecondAop: Target({ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) public interface MySecondAop { }MySecondAspect: Slf4j Aspect Component Order(100003) public class MySecondAspect {Around(annotation(aop))public Object around(ProceedingJoinPoint joinPoint, MySecondAop aop) throws Throwable {log.info(MySecondAspect#around execute start);try {return joinPoint.proceed();} finally {log.info(MySecondAspect#around execute end);}}}SampleController#aopOrder: RestController RequestMapping(/sample) public class SampleController {MySecondAopMyFirstAopRequestMapping(/aop-order)public String aopOrder() {return aopOrder;}}通过设定 Order 值指定 AOP 执行顺序与我们的期望一致。 好了今天的分享就到这里了源码demo-spring-boot-aop。
http://www.dnsts.com.cn/news/204405.html

相关文章:

  • 建网站 英文大连网络营销网站
  • 教做蛋糕的网站动漫网站做毕业设计简单吗
  • 查看网站后台登陆地址网站的优势是什么
  • 餐饮网站设计公司女性门户资讯类网站织梦dedecms模板
  • 王烨身世海口seo计费
  • 怎么请人做网站公司名字大全20000个免费
  • 网站开发最适合的浏览器图书电子商务网站建设
  • 自动化东莞网站建设wordpress创建页面路由
  • 南沙微网站建设石家庄建设银行网点
  • 有需要做网站的吗分销商城模板
  • 我要做个网站该怎么做saas系统是什么样的系统
  • 手机网站代码下载昆明做网站seo
  • 手机做直播官方网站企业信用网站建设
  • 做一个学校网站怎么做wordpress中的邮箱
  • 做公众号的网站模板天津市城乡建设网
  • 黑糖不苦还做网站么站长工具 seo综合查询
  • 泉州百度网站推广做网站能干什么
  • 保洁产品网站建设价格推广平台怎么做
  • 实惠的网站建设公司网站的主要栏目及功能
  • wap网站解析网易企业邮箱收费吗
  • 微信平台APP网站建设怎么样厦门百度关键词seo收费
  • 厂字型布局网站个人简单网页制作
  • 服务好 售后好的网站建设南宁建设厅网站是什么
  • 网站开发销售提成linux wordpress 下载文件
  • 七星彩网站建设黄山市网站建设
  • 2008r2 iis网站验证码不显示给客户做网站需要付法律责任吗
  • 中国十大网站开发公司做网站全体教程
  • 青岛天元建设集团网站网站优化内链怎么做
  • 龙岩e网站招标建设网站
  • 网站项目益阳市 网站建设