面试常见问题-Spring Aop的理解和使用?

面试常见问题-Spring Aop的理解和使用?,第1张

面试常见问题-Spring Aop的理解和使用?
  • Aop面向切面编程,在Spring中,通过配置切面类和切点,切面类中主要有前置通知方法,后置通知方法,异常通知方法以及环绕通知方法,切面类中的方法的逻辑就是你要织入代码的逻辑,然后你需要判断哪些类需要进行前面切面,所以就要配置切入点,可以使用xml方式,也可以使用注解的方法。
  • 实现方式主要是通过动态代理给目标类生成代理对象,如果目标类实现了接口就使用jdk代理,如果没有实现接口使用cglib代理,如果配置了优先级,则默认使用cglib代理。在spring容器启动后,就会去扫描哪些需要进行aop的类,这些类有哪些切面(切面是可以配置多个的),然后给目标类的每个方法都绑定一个相应的执行链,并放入到一个map中,当你调用时,会走代理类,然后通过索引加递归的方式去调用切面类前置通知方法,目标类方法,后置通知方法这样的顺序去调用。
  • 使用:可以拦截目标类,在方法的前后织入日志打印逻辑,包括Spring事务开启也是使用的aop,还有动态数据源切换等场景都是可以使用aop。如果配置多个切面,则要指定执行顺序,通过设置sort的大小来指定,sort值越小,越先执行,越后结束,sort值越大,越后执行,越先结束,就相当于一个同心圆。事务sort值默认是int类型的最大值。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5691789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存