Spring的AOP与AspectJ是什么关系?

Spring的AOP与AspectJ是什么关系?

德意的啸 发布于 2021-11-30 字数 161 浏览 868 回复 5

在实现AOP编程时,有用的动态代理,有用的cglib,然后有提到了AspectJ。

请问AspectJ与前二者是什么关系?

一般在实际开发时,推荐使用哪种?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

百思不得你姐 2021-12-01 5 楼

引用来自“小小志”的评论

AspectJ是一个面向切面的框架,是事实上的aop的标准,spring aop中支持使用#FFFFFF;">AspectJ注解使用aop。如果你想在项目中使用333333;font-family:Verdana, sans-serif, 宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">AspectJ注解就需要加上333333;font-family:Verdana, sans-serif, 宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">AspectJ的包

不乱于心 2021-12-01 4 楼

AspectJ是一个面向切面的框架,是事实上的aop的标准,spring aop中支持使用#FFFFFF;">AspectJ注解使用aop。如果你想在项目中使用333333;font-family:Verdana, sans-serif, 宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">AspectJ注解就需要加上333333;font-family:Verdana, sans-serif, 宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">AspectJ的包

可是我不能没有你 2021-12-01 3 楼

aop可以指定代理的实现方式~可以指定JDK的,可以指定别的~

女中豪杰 2021-12-01 2 楼

只知道 spring aop 默认使用 jdk 动态代理。 如果被代理对象没有实现接口就用cglib

陌若浮生 2021-11-30 1 楼

如果要实现代理类有对应的接口,Spring AOP 默认使用 JDK 自带的 InvocationHandler 来实现代理类。

如果没有对应的接口,Spring 使用 CGLib 来实现代理类。

AspectJ 是配置 AOP 的一种方式,和 Spring 自带的方式比较起来方便很多 http://www.mkyong.com/spring3/spring-aop-aspectj-in-xml-configuration-example/

<!-- Aspect -->
<bean id="logAspect" class="com.mkyong.aspect.LoggingAspect" />
 
<aop:config>
 
  <aop:aspect id="aspectLoggging" ref="logAspect" >
 
     <!-- @After -->
     <aop:pointcut id="pointCutAfter"
	expression="execution(* com.mkyong.customer.bo.CustomerBo.addCustomer(..))" />
 
     <aop:after method="logAfter" pointcut-ref="pointCutAfter" />
 
  </aop:aspect>
 
</aop:config>