最全你知道面试必问的AOP吗?通过Spring又如何实现呢?,和网易大佬的技术面谈

Kafka进阶篇知识点

image

Kafka高级篇知识点

image

44个Kafka知识点(基础+进阶+高级)解析如下

image

由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

/**

  • 声明返回通知 并将通知应用到切入点上

  • 目标类方法执行完毕执行该通知

*/

@AfterReturning(value=“cut()”)

public void afterReturning(){

System.out.println(“返回通知…”);

}

/**

  • 声明最终通知 并将通知应用到切入点上

  • 目标类方法执行过程中是否发生异常 均会执行该通知 相当于异常中的 finally

*/

@After(value=“cut()”)

public void after(){

System.out.println(“最终通知…”);

}

/**

  • 声明异常通知 并将通知应用到切入点上

  • 目标类方法执行时发生异常 执行该通知

*/

@AfterThrowing(value=“cut()”,throwing=“e”)

public void afterThrowing(Exception e){

System.out.println(“异常通知…方法执行异常时执行:”+e);

}

/**

  • 声明环绕通知 并将通知应用到切入点上

  • 方法执行前后 通过环绕通知定义相应处理

*/

@Around(value=“cut()”)

public Object around(ProceedingJoinPoint pjp) throws Throwable{

System.out.println(“环绕前置…”);

System.out.println(“环绕通知”);

System.out.println(pjp.getTarget()+“–”+pjp.getSignature());

Object result=pjp.proceed();//执行目标对象方法

System.out.println(“环绕后置…”);

return result;

}

}

Aop 匹配方法规则表达式语言(简要了解)

Aop 切入点表达式简介

执行任意公共方法:

execution(public *(…))

执行任意的 set 方法

execution(* set*(…))

执行 com.xxx.service 包下任意类的任意方法

execution(* com.xxx.service..(…))

执行 com.xxx.service 包 以及子包下任意类的任意方法

execution(* com.xxx.service….(…))

xml 方式

配置切面、切入点、通知

aop:config

<aop:aspect ref=“logCut”>

<aop:pointcut expression=“execution (* com.xxx.service….(…))”

id=“cut”/>

<aop:before method=“before” pointcut-ref=“cut”/>

<aop:after-returning method=“afterReturning” pointcut-ref=“cut”/>

<aop:after-throwing method=“afterThrowing” throwing=“e” pointcut-ref=“cut”/>

<aop:after method=“after” pointcut-ref=“cut”/>

<aop:around method=“around” pointcut-ref=“cut”/>

</aop:aspect>

</aop:config>

定义 bean

/**

  • 声明切面组件

*/

@Component

public class LogCut {

public void before(){

System.out.println(“前置通知…”);

}

public void afterReturning(){

System.out.println(“返回通知…”);

}

public void after(){

System.out.println(“最终通知…”);

}

public void afterThrowing(Exception e){

System.out.println(“异常通知…方法执行异常时执行:” + e);

}

public Object around(ProceedingJoinPoint pjp) throws Throwable{

System.out.println(“环绕前置…”);

System.out.println(“环绕通知”);

System.out.println(pjp.getTarget()+“–”+pjp.getSignature());

Object result=pjp.proceed();

System.out.println(“环绕后置…”);

return result;

}

}

扩展


AOP 的基本概念

JoinPoint(连接点)【动态】

被拦截到的每个点,spring 中指被拦截到的每一个方法,spring aop 一个连接点即代表一个方法的执行。

Pointcut(切入点)【静态】

对连接点进行拦截的定义(匹配规则定义 规定拦截哪些方法,对哪些方法进行处理),spring 这块有专门的表达式语言定义。

Advice(通知){重点}

拦截到每一个连接点即(每一个方法)前后所要做的操作

前置通知(前置增强)–before() 执行方法前通知

最后

由于篇幅限制,小编在此截出几张知识讲解的图解

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

59596)]

[外链图片转存中…(img-mVYybovu-1715594259597)]

[外链图片转存中…(img-ZmhEZMUo-1715594259597)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值