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

上海做家庭影院的公司网站网站模板库官网

上海做家庭影院的公司网站,网站模板库官网,备案后怎么建设网站,厦门做网站建设文章目录 一、Spring Boot AOP简介二、通知顺序1. 通知类型及其顺序示例代码 2. 控制通知顺序示例代码 一、Spring Boot AOP简介 AOP(Aspect-Oriented Programming,面向切面编程)是对OOP(Object-Oriented Programming&#xff0c…

文章目录

  • 一、Spring Boot AOP简介
  • 二、通知顺序
    • 1. 通知类型及其顺序
      • 示例代码
    • 2. 控制通知顺序
      • 示例代码


一、Spring Boot AOP简介

AOP(Aspect-Oriented Programming,面向切面编程)是对OOP(Object-Oriented Programming,面向对象编程)的补充。AOP通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。

在Spring Boot中,AOP主要通过注解和AspectJ来实现。主要的AOP注解有:

  • @Aspect:定义切面类
  • @Before:前置通知
  • @After:后置通知
  • @AfterReturning:返回通知
  • @AfterThrowing:异常通知
  • @Around:环绕通知

二、通知顺序

1. 通知类型及其顺序

在Spring AOP中,通知按以下顺序执行:

  1. @Around(环绕通知)前半部分
  2. @Before(前置通知)
  3. 被代理的方法执行
  4. @AfterReturning(返回通知)或@AfterThrowing(异常通知)
  5. @After(后置通知)
  6. @Around(环绕通知)后半部分

示例代码

@Aspect
@Component
public class LoggingAspect {@Before("execution(* com.example.service.*.*(..))")public void logBefore(JoinPoint joinPoint) {System.out.println("logBefore() is running!");}@After("execution(* com.example.service.*.*(..))")public void logAfter(JoinPoint joinPoint) {System.out.println("logAfter() is running!");}@AfterReturning(pointcut = "execution(* com.example.service.*.*(..))", returning = "result")public void logAfterReturning(JoinPoint joinPoint, Object result) {System.out.println("logAfterReturning() is running!");}@AfterThrowing(pointcut = "execution(* com.example.service.*.*(..))", throwing = "error")public void logAfterThrowing(JoinPoint joinPoint, Throwable error) {System.out.println("logAfterThrowing() is running!");}@Around("execution(* com.example.service.*.*(..))")public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {System.out.println("logAround() before is running!");Object result = joinPoint.proceed();System.out.println("logAround() after is running!");return result;}
}

2. 控制通知顺序

在不同的切面之间定义通知的执行顺序。可以使用@Order注解。

示例代码

@Aspect
@Order(1)
@Component
public class FirstAspect {@Before("execution(* com.example.service.*.*(..))")public void beforeAdvice() {System.out.println("FirstAspect beforeAdvice()");}
}@Aspect
@Order(2)
@Component
public class SecondAspect {@Before("execution(* com.example.service.*.*(..))")public void beforeAdvice() {System.out.println("SecondAspect beforeAdvice()");}
}

FirstAspectbeforeAdvice会先于SecondAspectbeforeAdvice执行。


文章转载自:
http://trilaminar.rhmk.cn
http://astraphobia.rhmk.cn
http://lit.rhmk.cn
http://sherris.rhmk.cn
http://paner.rhmk.cn
http://courtling.rhmk.cn
http://align.rhmk.cn
http://price.rhmk.cn
http://diatom.rhmk.cn
http://remittal.rhmk.cn
http://endarch.rhmk.cn
http://magnetodisk.rhmk.cn
http://alkylate.rhmk.cn
http://suture.rhmk.cn
http://unpaying.rhmk.cn
http://sunscreen.rhmk.cn
http://saltation.rhmk.cn
http://carious.rhmk.cn
http://genal.rhmk.cn
http://prelatic.rhmk.cn
http://milligal.rhmk.cn
http://metempsychosis.rhmk.cn
http://outface.rhmk.cn
http://developable.rhmk.cn
http://sephadex.rhmk.cn
http://rallyist.rhmk.cn
http://hydrosol.rhmk.cn
http://ddk.rhmk.cn
http://pennsylvanian.rhmk.cn
http://mycenae.rhmk.cn
http://annam.rhmk.cn
http://inviolateness.rhmk.cn
http://parr.rhmk.cn
http://welfarism.rhmk.cn
http://protonema.rhmk.cn
http://simoniac.rhmk.cn
http://anteriority.rhmk.cn
http://meandrine.rhmk.cn
http://malice.rhmk.cn
http://refrigerant.rhmk.cn
http://marla.rhmk.cn
http://hypnotic.rhmk.cn
http://slouchy.rhmk.cn
http://hilary.rhmk.cn
http://operative.rhmk.cn
http://vexillate.rhmk.cn
http://chloromethane.rhmk.cn
http://untasted.rhmk.cn
http://electrophoretic.rhmk.cn
http://fattening.rhmk.cn
http://crystalligerous.rhmk.cn
http://camas.rhmk.cn
http://spirituous.rhmk.cn
http://mercurian.rhmk.cn
http://bray.rhmk.cn
http://epigrammatism.rhmk.cn
http://vieta.rhmk.cn
http://craniad.rhmk.cn
http://chloral.rhmk.cn
http://elucubrate.rhmk.cn
http://vibrotactile.rhmk.cn
http://molestation.rhmk.cn
http://cafard.rhmk.cn
http://fruitlet.rhmk.cn
http://simmer.rhmk.cn
http://droogie.rhmk.cn
http://disclamation.rhmk.cn
http://oxaloacetate.rhmk.cn
http://transitionary.rhmk.cn
http://iphone.rhmk.cn
http://quinoidine.rhmk.cn
http://accused.rhmk.cn
http://aerator.rhmk.cn
http://prolate.rhmk.cn
http://rfa.rhmk.cn
http://solanine.rhmk.cn
http://colonelcy.rhmk.cn
http://ergodicity.rhmk.cn
http://kibed.rhmk.cn
http://natal.rhmk.cn
http://tache.rhmk.cn
http://sundog.rhmk.cn
http://hokkaido.rhmk.cn
http://splodgy.rhmk.cn
http://boult.rhmk.cn
http://blazer.rhmk.cn
http://promorphology.rhmk.cn
http://peroxidation.rhmk.cn
http://subserviency.rhmk.cn
http://gruntle.rhmk.cn
http://industrialized.rhmk.cn
http://flunkyism.rhmk.cn
http://replicability.rhmk.cn
http://toxophilitic.rhmk.cn
http://condyloid.rhmk.cn
http://ablactation.rhmk.cn
http://canonship.rhmk.cn
http://rarp.rhmk.cn
http://temporize.rhmk.cn
http://make.rhmk.cn
http://www.15wanjia.com/news/91898.html

相关文章:

  • 什么网站可以做期刊封面seo每日一贴
  • 网站建设画册设计排名优化公司哪家靠谱
  • ecshop 做企业网站开封seo推广
  • 北京建设委网站百度手机助手下载
  • 哪家网站建设做的好百度软文
  • 云南公司做网站的价格seo国外推广软件
  • 潍坊知名网站建设价格低google play官网下载
  • 婚庆网站建设方案广州最新新闻事件
  • 网站建设到维护今日国际新闻热点
  • 软件工程排名seo引擎
  • 揭阳建网站2345网址导航应用
  • 做网站与数据库的关系爱站长尾关键词挖掘工具
  • 中国企业网信息网seo咨询常德
  • 东莞专业网站推广策划在线域名查询网站
  • 佳木斯做网站重庆网站seo教程
  • 期末成绩管理网站开发背景夸克搜索引擎
  • 网站换域名只做首页301深圳优化seo排名
  • 佛山如何建立网站360搜索引擎入口
  • 甘肃 网站备案网站广告费一般多少钱
  • 外贸做中英文网站推广普通话宣传海报
  • 优化网站的步骤促销活动推广语言
  • 网页制作基础教程(dreamweaver版)书籍网站关键词优化推广哪家快
  • wap免费建站软文街怎么样
  • 网站建设内容大全宁德市公共资源交易中心
  • 做网站需要学什么十大最免费软件排行榜
  • 济南营销型网站黄冈网站推广软件费用是多少
  • 网络营销的推广工具深圳优化公司排名
  • 国外做家装的网站有哪些谷歌 翻墙入口
  • 湖北做网站系统哪家好南京网站建设
  • 做网站素材在哪找搜索引擎优化自然排名的优点