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

许昌做网站汉狮网络运营推广计划

许昌做网站汉狮网络,运营推广计划,工作服定制供应厂家,衡水移动网站建设报价Aspect(切面):用于标识一个类是切面的注解。通常与其他通知注解一起使用,定义切面类。 Pointcut(切点): 注解来定义切点,它用于描述哪些连接点将会被通知所通知。 连接点&#xff…

@Aspect(切面):用于标识一个类是切面的注解。通常与其他通知注解一起使用,定义切面类。

@Pointcut(切点): 注解来定义切点,它用于描述哪些连接点将会被通知所通知。

连接点:execution(* com.example.service.*.*(..))

通知类

  1. @Before:前置通知,在目标方法执行前执行。
  2. @Around:环绕通知,在目标方法执行前后都执行,并且可以控制是否执行目标方法。
  3. @AfterReturning:正常返回通知,目标方法正常返回后执行。
  4. @AfterThrowing:异常返回通知,在目标方法抛出异常后执行。
  5. @After:后置通知,在目标方法执行后执行,无论是否抛出异常都会执行。

执行顺序:

1、使用前置通知

  • 正常返回情况:@Before -> 方法 -> @AfterReturning -> @After
  • 异常返回情况:@Before -> 方法 -> @AfterThrowing -> @After

2、使用环绕通知

  • 正常返回情况:@Around(前)-> 方法 -> @Around(后) -> @AfterReturning -> @After
  • 异常返回情况:@Around(前)-> 方法 -> @Around(后) -> @AfterThrowing -> @After

3、前置通知和环绕通知都使用

  • 正常返回情况:@Before -> @Around(前)-> 方法 -> @Around(后)-> @AfterReturning -> @After
  • 异常返回情况:@Before -> @Around(前)-> 方法 -> @Around(后) -> @AfterThrowing -> @After

注意:在 @Around 通知类型中,通过调用 ProceedingJoinPoint.proceed() 才会触发目标方法的执行,因此可以在方法执行前后加入额外的逻辑。

实现AOP案例:

@Aspect
@Component
public class LoggingAspect {@Before("execution(* com.example.MyService.*(..))")public void beforeMethodExecution(JoinPoint joinPoint) {String methodName = joinPoint.getSignature().getName();System.out.println("Before executing method: " + methodName);}@Around("execution(* com.example.MyService.*(..))")public Object aroundMethodExecution(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {String methodName = proceedingJoinPoint.getSignature().getName();System.out.println("Before executing method: " + methodName);// 执行目标方法Object result = proceedingJoinPoint.proceed();System.out.println("After executing method: " + methodName + ", result is " + result);return result;}@AfterReturning(pointcut = "execution(* com.example.MyService.*(..))", returning = "result")public void afterMethodExecution(Object result) {System.out.println("After method execution, the result is " + result);}@AfterThrowing(pointcut = "execution(* com.example.MyService.*(..))", throwing = "e")public void afterMethodThrowing(JoinPoint joinPoint, Exception e) {String methodName = joinPoint.getSignature().getName();System.out.println("Method " + methodName + " threw exception: " + e.getMessage());}@After("execution(* com.example.MyService.*(..))")public void afterMethodExecution(JoinPoint joinPoint) {String methodName = joinPoint.getSignature().getName();System.out.println("After executing method: " + methodName);}
}

ps:以下是我整理的java面试资料,密码是obht,感兴趣的可以看看。最后,创作不易,觉得写得不错的可以点点关注!

链接:https://www.yuque.com/u39298356/uu4hxh?# 《Java面试宝典》 

http://www.tj-hxxt.cn/news/67702.html

相关文章:

  • 姑苏区做网站竞价推广是什么意思
  • 网站定位广告百度登录入口百度
  • 做便民工具网站怎么样为企业策划一次网络营销活动
  • 学校门户网站建设的好处百度广告费
  • 常州好搜网络科技有限公司seo排名的职位
  • 多肉建设网站的目的及功能定位浏览器搜索引擎大全
  • 一级a做爰片免费网站短视频友情链接方面
  • 做网站难还是appseo外包公司如何优化
  • 轻淘客网站建设北京网优化seo优化公司
  • 青岛网站建设的流程有哪些网站点击量软件
  • 做网站赚多少钱搜狗推广开户
  • 河南制作网站推广关键词优化
  • 全面的哈尔滨网站建设搜索引擎哪个好
  • office做网站的企业培训方案制定
  • 苏州哪家网站公司做的好的软文价格
  • 做app和做网站区别营销策划方案案例
  • wordpress开店5g网络优化培训
  • 济南做网站公司xywlcn竞价推广开户
  • 网站设计制作的特点有哪些世界500强企业排名
  • 青白江区城乡和建设局网站域名交易
  • 广网站建设seo优化师是什么
  • 做网站开发的有哪些公司好举出最新的网络营销的案例
  • 免费ui设计网站沈阳市网站
  • 免费多用户商城系统seo外包方案
  • 廊坊seo扣费seo广告投放是什么意思
  • 网站建站流程图怎么在百度推广
  • python 做网站开发微信卖货小程序怎么做
  • 高端网站鉴赏广告投放策略
  • 建设公司与建筑公司的区别廊坊网站seo
  • 柳州网站建设 来宾市网站制作关键词歌词图片