文档章节

Spring AOP(jdk动态代理,cglib)与aspjectJ关联

meeppo
 meeppo
发布于 2017/08/11 16:17
字数 219
阅读 77
收藏 0

Spring可通过配置来支持aspectJ的注解和格式

<aop:aspectj-autoproxy/>

如何注入一个代理类呢? 有两种方式:

1. 配置beans, 比如:

<aop:aspect ref="logHandler"><!-- 定义切面 -->

           <aop:pointcut id="manager" expression="execution(* com.test.*.*(..))" /><!-- 定义切点 -->

           <aop:before pointcut-ref="manager" method="printLog" />

</aop:aspect>

2. 使用@Aspectj注解, 需要在配置文件:

<!-- 启动 @AspectJ 支持 --> 
<bean class="org.springframework.aop.aspectj.annotation. AnnotationAwareAspectJAutoProxyCreator"/>

注意, Spring中仅仅是可支持aspectj的注解和格式, 但AOP的实现方式并没有使用aspectj的机制, 也没有使用相应的编译器. Spring只集成了aspectJ的注解模式

Spring中依然使用jdk动态代理和cglib来完成AOP,可以显式的配置强制使用cglib:

<aop:aspectj-autoproxy proxy-target-class="true"/>

否则对于实现了接口的类,默认使用jdk动态代理,没有实现接口的类,使用cglib

© 著作权归作者所有

共有 人打赏支持
meeppo
粉丝 1
博文 6
码字总数 1008
作品 0
江北
程序员
私信 提问
Sring如何选择JDK动态代理与CGLIB字节码增强

Spring将事务代理工厂TransactionProxyFactoryBean或自动代理拦截器BeanNameAutoProxyCreator的proxyTargetClass属性,设置为true,则使用CGLIB代理,此属性默认为false,使用JDK动态代理。 Spri...

无语年华
09/11
0
0
Spring中JDK动态代理和Cglib代理的区别

Spring的AOP基于代理模式,并且它即使用到了JDK动态代理也使用了Cglib代理。 如下代码是springAOP中默认的代理实现类DefaultAopProxyFactory,其中创建代理的方法createAopProxy,在这个方法...

王子城
08/01
0
0
Java设计模式综合运用(动态代理+Spring AOP)

AOP设计模式通常运用在日志,校验等业务场景,本文将简单介绍基于Spring的AOP代理模式的运用。 1. 代理模式 1.1 概念 代理(Proxy)是一种提供了对目标对象另外的访问方式,即通过代理对象访问...

landy8530
10/05
0
0
Spring Proxy 动态代理(ProxyFactory)

一、动态代理生成技术栈分为两种: 1、JDK动态代理 JDK动态代理只能对实现了接口的类生成代理,而不能针对类 2、Cglib动态代理 CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其...

王微_1986
07/27
0
0
动态代理:JDK动态代理和CGLIB代理的区别

本文转载自:动态代理:JDK动态代理和CGLIB代理的区别 代理模式:代理类和被代理类实现共同的接口(或继承),代理类中存有指向被代理类的索引,实际执行时通过调用代理类的方法、实际执行的是...

淡淡的倔强
09/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用Laya引擎开发微信小游戏(下)

本文由云+社区发表 6. 动画 6.1 创建伞兵对象 在src目录下创建一个新目录role,用来存放游戏中角色。 在role里创建一个伞兵Soldier.ts对象文件。 module role{ export class Soldier ex...

腾讯云加社区
20分钟前
0
0
移动PWA初探

在去年上海举办的2017谷歌开发者大会上,PWA作为会议的一个重要内容被推介,笔者作为参会嘉宾看了PWA的内容后,觉得这种技术会是未来移动发展的一个趋势。Google开发技术推广工程师Michael Y...

临江仙卜算子
23分钟前
0
0
Git工作原理

git跟传统的代码管理器(如svn)不同, 主要区别在于git多了个本地仓库以及缓存区,所以即使无法联网也一样能提交代码。 术语解释: 工作区间: 即我们创建的工程文件, 在编辑器可直观显示;...

Lienson
26分钟前
2
0
MySQL驱动对应Server版本、JDK版本

昨日生产上线,临时升级MySQL版本,导致连接不上。 应用JDK版本1.5 测试环境MySQL版本5.7 驱动版本5.1.40.jar 正常 生产环境MySQL版本8.0 驱动版本5.1.40.jar 连接不上 生产环境MySQL版本8.0...

zcjlq
28分钟前
16
0
千万级规模【高性能、高并发】互联网架构经验分羹

架构以及我理解中架构的本质 在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个人见解,千万级规模的网站感觉数量级是非常大的,对这个数量级我们战略上 要重 视 它 , 战术上又...

java知识分子
28分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部