最新文章列表

java动态代理(jdk &cglib)

静态代理 代理类和被代理类 实现同一个接口 缺点就是一个代理类只能针对一个接口 public interface Sale { public int saleGoods(); } public class Factory implements Sale { @Override public int saleGoods() { System.out.println(" ...
shifulong 评论(2) 有2241人浏览 2014-12-16 16:37

CGLIB技术详解

一、CGLIB简介       cglib(Code Generation Library)是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。    cglib封装了asm,可以在运行期动态生成新的class。    cglib用于AOP,jdk中的proxy必须基于接口,cglib却没有这个限制。   二、准备工作       要使用c ...
tommy_lu 评论(0) 有1195人浏览 2014-12-03 19:51

第六讲 java动态代理与cglib动态代理

一、      理解动态代理设计模式 代理模式,是常用的Java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息,过滤消息,把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现业务,而是通过调用委托类的对象相关方法,来提供特定的服务。 动态代理类的字节码在程序运行时 ...
l810102251 评论(0) 有599人浏览 2014-11-09 12:20

jdk和CGLIB动态代理

jdk动态代理和CGLIB动态代理的区别:    jdk动态代理只能针对实现了接口的目标代理, CGLIB是针对类来实现动态代理,当没有实现接口的类需要代理时,就需要通过CGLIB来实现动态代理。jdk动态代理:   User.java public class User { private String uname; private String email; ...
xuweilovejava 评论(0) 有693人浏览 2014-10-22 15:03

Java动态代理与CGLib

Java动态代理机制是一种强大的编译时生成代码的机制。 比如以下例子,其实就是在编译后生成一个HelloImpl的代理类。它要求被代理的方法必须来自于一个借口,如例子中的Hello package org.mark.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; im ...
xiaohuafyle 评论(2) 有1462人浏览 2014-10-11 02:01

java字节码操作框架集合

(1) ObjectWeb ASM轻量级的Java字节码处理框架。它可以动态生成二进制格式的stub类或其他代理类,或者在类被JAVA虚拟机装入内存之前,动态修改类。ASM 提供了与 BCEL和SERP相似的功能,只有22K的大小,比起350K的BCEL和150K的SERP来说,是相当小巧的,并且它有更高的执行效率,是BCEL的7倍,SERP的11倍以上。 该项目主页:http://asm.obje ...
xiemingmei 评论(0) 有1359人浏览 2014-09-28 15:01

Spring AOP源码分析(六)Spring AOP配置的背后

本篇文章主要对Spring AOP配置背后进行了哪些事情做下说明。还是如上类似的工程,在xml中AOP拦截配置如下: <bean id="aspectBean" class="com.lg.aop.TestAspect" /> <aop:config expose-proxy="false" proxy-t ...
乒乓狂魔 评论(0) 有3047人浏览 2014-09-27 11:39

javassist/cglib入门资料

javassist javassist学习 javassist 学习笔记 Java 编程的动态性, 第四部分: 用 Javassist 进行类转换 cglib CGLib: The Missing Manual 性能测试 动态代理方案性能对比 不过这个测试结果有点老了,在我的Win7, JDK1.6_0_43 64bit机器上测试下来,JDK自带的proxy已经很快了,基本上各大框架难分伯仲 ...
xpenxpen 评论(0) 有876人浏览 2014-09-25 15:09

Spring AOP源码分析(五)Spring AOP的Cglib代理

上一篇文章介绍了Spring AOP的JDK动态代理的过程,这一篇文章就要介绍下Spring AOP的Cglib代理过程,仍然是使用上一篇文章的工程案例。 JDK动态代理是由JdkDynamicAopProxy来生成代理对象的,Cglib则是由CglibAopProxy来生成代理对象的。JdkDynamicAopProxy、CglibAopProxy实现了AopProxy接口,如下: publ ...
乒乓狂魔 评论(0) 有4279人浏览 2014-09-24 06:48

Spring AOP源码分析(二)JDK动态代理和CGLIB介绍

本篇是介绍java实现代理对象的两种方法,JDK动态代理和CGLIB。 JDK动态代理:针对你所调用的方法是接口所定义的方法。动态的创建一个类,通过实现目标类的接口来实现代理。 CGLIB:没有限制。通过继承目标类来创建代理类,实现代理。 下面看案例: 案例一,JDK动态代理: Person和Animals都实现了Say接口sayHello方法。现在就需要对他们的sayHello方法进行拦截。 S ...
乒乓狂魔 评论(0) 有3022人浏览 2014-09-21 07:07

JDK动态代理及cglib动态代理实现分析

代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问,动态代理使得开发人员无需手工编写代理类便可动态地获得代理类,下面就JDK动态代理与CGLIB动态代理展开分析。 一、JDK动态代理分析 JDK动态代理依靠接口实现,所以仅支持实现了接口的动态代理,下面用一个常用的JDK动态代理实现进行分析 (1)实现InvocationHandler实现调用处理器 package ...
随心而行 评论(0) 有862人浏览 2014-07-20 12:10

Spring AOP 实现原理

什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义 ...
doflex 评论(0) 有1233人浏览 2014-07-06 18:30

bboss序列化cglib代理对象方法介绍

本文介绍bboss序列化cglib代理对象方法。经过cglib代理过的po类对象实例是原来po对象的子类对象,bboss在序列化这种对象时,需要经过特殊处理,否则会出现不可预知的错误,导致序列化失败,典型的例子就是hibernate查询操作返回的po对象就是cglib代理对象。 bboss序列化cglib代理对象方法非常简单,与序列化普通对象的方法一样,使用代码如下: @Test public ...
yin_bp 评论(0) 有1153人浏览 2014-06-22 15:14

spring-aop-ProxyFactoryBean 源码分析

在阅读本篇之前,请先阅读http://wangxinchun.iteye.com/blog/2079024,重复的逻辑,本篇不再进行分析~ 在spring框架有一个鲜明的特点,一般的服务 都有编程式的和配置式的两种实现。 编程方式的使用往往比较明了,但是功能相对弱,使用不够简洁。配置式的往往能结合spring的ioc框架,提供更松散更强大的功能,兼容并蓄在spring框架在所有方面都表现的淋漓尽致。 ...
王新春 评论(0) 有2029人浏览 2014-06-13 19:10

spring-aop-ProxyFactory 源码分析

spring 提供的编程式aop实现,即通过 ProxyFactory类完成的。 另外AnnotationAwareAspectJAutoProxyCreator  BeanNameAutoProxyCreator  DefaultAdvisorAutoProxyCreator 等自动aop代理创建器都是通过在其父类AbstractAutoProxyCreator中通过ProxyFactory 来 ...
王新春 评论(1) 有4772人浏览 2014-06-13 02:22

java字节码操作

你知道如何操作JAVA字节码文件吗,这里将介绍与操作Java字节码有关的基本知识和操作Java字节码的方法及Demo,首先我们来看一下AOP的概念,AOP是OOP的延续,是AspectOrientedProgramming的缩写,意思是面向方面编程。   如何操作JAVA字节码文件   本文将介绍与操作Java字节码有关的基本知识和操作Java字节码的方法及Demo,谈到操作Java字节码,不 ...
zhb8015 评论(0) 有910人浏览 2014-05-26 17:21

CGLIB BeanCopier和BeanMap等实现

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp36 背景 转自:http://agapple.iteye.com/blog/799827     前段时间在工作中,包括一些代码阅读过程中,spring aop经常性的会看到cglib中的相关内容,包括BeanCopier,BulkBean,Enanch ...
grefr 评论(0) 有5021人浏览 2014-04-23 18:57

BeanCopier系列之三:缓存BeanCopier提升性能

BeanCopier系列之一:特性测试 BeanCopier系列之二:使用Converter BeanCopier拷贝速度快,性能瓶颈出现在创建BeanCopier实例的过程中。 所以,把创建过的BeanCopier实例放到缓存中,下次可以直接获取,提升性能: public class CachedBeanCopier { static final Map<String, ...
czj4451 评论(0) 有6847人浏览 2014-04-12 18:14

BeanCopier系列之二:使用Converter

BeanCopier系列之一:特性测试 BeanCopier系列之三:缓存BeanCopier提升性能   当源和目标类的属性类型不同时,不能拷贝该属性,此时我们可以通过实现Converter接口来自定义转换器: 源类和目标类: public class AccountEntity { private int id; private Timestamp createTime; ...
czj4451 评论(0) 有19934人浏览 2014-04-12 17:36

CGLIB 动态代理的实现

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp92  JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类,如何实现动态代理呢 ...
grefr 评论(0) 有1215人浏览 2014-04-08 16:35

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics