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

网站的上一页怎么做免费模板网站都有什么区别

网站的上一页怎么做,免费模板网站都有什么区别,许昌市建设投资有限公司 网站,乐陵seo推广1、通知(Advice) 1.1简介 在AOP中,通知(Advice)是切面(Aspect)中的一部分,用于定义在连接点(Joinpoint)处应该执行的操作。通知类型可以在AOP框架中配置和使…

1、通知(Advice)

1.1简介

  • 在AOP中,通知(Advice)是切面(Aspect)中的一部分,用于定义在连接点(Joinpoint)处应该执行的操作。
  • 通知类型可以在AOP框架中配置和使用,以便在运行时动态地将代码切入到类的指定方法、指定位置上。
  • 通过AOP,开发人员可以将日志记录、性能统计、安全控制、事务处理等代码从业务逻辑代码中划分出来,并独立到非指导业务逻辑的方法中,从而提高程序的可重用性和开发效率。

1.2常见的通知类型

  • 前置通知(Before Advice):在目标方法执行之前执行的通知,无法阻止方法的继续执行(除非它抛出一个异常)。
  • 后置通知(After Returning Advice):在目标方法成功执行之后执行的通知。如果目标方法通过抛出异常退出,则不会执行此类型的通知。
  • 异常通知(After Throwing Advice):在目标方法通过抛出异常退出时执行的通知。通常用于记录异常信息或进行异常处理。
  • 最终通知(After (finally) Advice):无论目标方法通过何种方式退出(正常返回或异常退出),该通知都会执行。它类似于Java语言中的finally块。
  • 环绕通知(Around Advice):环绕通知是最强大的通知类型,它将目标方法封装起来,可以在方法调用之前和之后自定义行为,甚至可以完全控制是否调用目标方法。环绕通知可以手动调用切入点方法并对其进行增强,从而实现更复杂的逻辑处理。

2、代码举例

在Spring AOP中,我们通常使用AspectJ的注解来定义通知。以下是用Spring AOP和AspectJ注解方式示范五种通知类型的示例代码:

首先,我们需要一个目标接口和一个实现类:

// 目标接口  
public interface MyService {  void doSomething();  void doSomethingElse() throws Exception;  
}  // 目标接口实现类  
@Service  
public class MyServiceImpl implements MyService {  @Override  public void doSomething() {  System.out.println("Doing something...");  }  @Override  public void doSomethingElse() throws Exception {  System.out.println("Doing something else...");  throw new Exception("An exception occurred!");  }  
}

创建一个切面类,并使用AspectJ的注解来定义五种通知:

@Aspect  
@Component  
public class MyAspect {  // 前置通知  @Before("execution(* com.example.demo.MyService.doSomething(..))")  public void beforeAdvice() {  System.out.println("Before doSomething is executed.");  }  // 后置通知(返回后)  @AfterReturning(pointcut = "execution(* com.example.demo.MyService.doSomething(..))", returning = "result")  public void afterReturningAdvice(JoinPoint joinPoint, Object result) {  System.out.println("After doSomething is executed. Result: " + result);  // 注意:这里result参数只有在目标方法有返回值时才有意义  }  // 异常通知  @AfterThrowing(pointcut = "execution(* com.example.demo.MyService.doSomethingElse(..))", throwing = "ex")  public void afterThrowingAdvice(JoinPoint joinPoint, Exception ex) {  System.out.println("Exception occurred in doSomethingElse: " + ex.getMessage());  }  // 最终通知(无论成功还是异常)  @After("execution(* com.example.demo.MyService.*(..))")  public void afterAdvice(JoinPoint joinPoint) {  System.out.println("After method is executed: " + joinPoint.getSignature().getName());  }  // 环绕通知  @Around("execution(* com.example.demo.MyService.doSomething(..))")  public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {  System.out.println("Before doSomething is executed (around advice).");  Object result = joinPoint.proceed(); // 调用目标方法  System.out.println("After doSomething is executed (around advice). Result: " + result);  return result;  }  
}

在Spring配置中启用AspectJ自动代理,通过@EnableAspectJAutoProxy注解在配置类上完成:

@Configuration  
@EnableAspectJAutoProxy  
public class AppConfig {  // ... 其他配置 ...  
}

 

http://www.yayakq.cn/news/334709/

相关文章:

  • 网站推广都有哪些大学电子商务网站建设
  • 深圳教育集团网站建设西安微网站建设
  • 郑州网站seo多少钱会计培训班的费用是多少
  • 设计素材网站哪几个好用德城区城乡建设局网站
  • 网站 当前时间 代码蚌埠城乡建设 局网站
  • 网站seo怎么做建筑工程网格化
  • 家庭宽带做私人网站网页版传奇176
  • 鄂州网站设计制作公司传媒公司宣传片
  • 宁波人流医院哪家好长沙网站排名优化
  • 临沂市建设工程监理公司网站如何用apache建设网站
  • 国外免费logo网站深圳购物网站建设公司
  • 做电脑网站手机能显示不出来怎么办啊纯mvc做的都有那些网站
  • 成都 视频网站建设新手如何自己做网站
  • 设计商城商务网站汕头网站建设网站
  • 设计师个人网站电脑网站拒绝连接怎么解决
  • 南京高端网站定制建站网址大全
  • 减少网站跳出率孝昌建设局网站
  • 可以免费建设网站吗西安百度公司开户
  • 网站流量统计实现安卓下载软件
  • wordpress网站之间互联wordpress固定网址打不开
  • 溜冰后做爰在线网站网络营销服务公司有哪些
  • 网站404页面下载网站制作公司加盟
  • 惠普电脑网站建设策划方案南充市住房建设局网站
  • 汉邦未来网站建设wordpress文章图片默认居中
  • 课程网站开发 预算体育设施建设网站
  • 芜湖经济开发区网站英语作文模板高中
  • word文档做网站wordpress 播放音乐
  • 做搬家网站推广在那好昆山网站建设 熊掌号
  • 怎么加入网站做微商城wordpress更换子域名
  • 网站批量修改商场设计案例分析