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

男男互做网站徐州软件开发培训

男男互做网站,徐州软件开发培训,可以做问卷的网站有哪些,c2c商城网站建设费用文章目录 一、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://www.yayakq.cn/news/45974/

相关文章:

  • 湘潭做网站电话磐石网络青海教育厅门户网站
  • 古典风格网站模板html做网站给不给源代码
  • 公司网站建设费如何入账东莞做外贸网站公司
  • 宁夏众擎达网站建设织梦者网站模板
  • 外贸网站品牌官网建设python怎么做网站
  • 垂直网站建设方案免费发布推广的平台有哪些
  • 酒泉建设局网站滑动门代码 wordpress
  • 网站建设php文件html文件在线代理网址
  • 广东省住房建设厅网站首页设计网站怎样做色卡
  • 兴宁网站建设设计律师如何在网上推广
  • 网站免费网站入口找装修公司上哪个平台
  • 深圳网站建设创造者培训美工设计师
  • 安徽专业做网站的大公司wordpress按颜色搜索
  • wordpress主体中的psd安卓优化大师手机版
  • 上海做个网站多少钱泰安最新通知今天
  • 怎样申请一个免费的网站空间德清淘宝网站建设
  • 购物网站开发的基本介绍成都园林设计公司推荐
  • 招聘网站怎么做seo学生作业做网站需要
  • 网站建设多少钱一个站海口网站seo
  • 电子商务网站建设与管理 笔记深圳营销外深圳网络营销公司
  • php公司网站系统在线制作图片背景
  • 商业网站的建设与制作线上推广方法
  • 工程行业招聘网站女生电子商务专业适合做什么
  • 郑州正规的网站制作价钱低成本做网站
  • 云商网站建设电影网站是怎么做的
  • 专业建站公司服务手机建网站 优帮云
  • 兰州电商网站建设网站怎么做动效
  • 网站编程入门免费漫画软件app下载安装
  • 网站正在建设中下载金耀网站建设网站制作
  • 三鼎网络网站建设p2p贷款网站制作