`

java Cglib的应用

阅读更多
  java中简单使用CGLIB实现AOP的切面编程
package ppfuns.cglib;

import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

import java.lang.reflect.Method;

/**
 * Created with IntelliJ IDEA.
 * Date: 2018/1/12
 * Time: 11:11
 * To change this template use File | Settings | File Templates.
 */
public class EnhancerDemo {

    public static void main(String[] args) {
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(EnhancerDemo.class);
        enhancer.setCallback(new MethodInterceptorImpl());
        EnhancerDemo demo = (EnhancerDemo) enhancer.create();
        demo.test();
        System.out.println(demo);
    }
    public void test(){
        System.out.println("正在测试:"+EnhancerDemo.class.getName());
    }
}
class MethodInterceptorImpl implements MethodInterceptor{
    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
        System.out.println("before test....."+method.getName());
        Object t =  methodProxy.invokeSuper(o,objects);
        System.out.println("after test ...."+method.getName());
        return t;
    }
}


结果:
before test.....test
正在测试:ppfuns.cglib.EnhancerDemo
after test ....test
before test.....toString
before test.....hashCode
after test ....hashCode
after test ....toString
ppfuns.cglib.EnhancerDemo$$EnhancerByCGLIB$$fdf1bbc4@6ae40994

Process finished with exit code 0
分享到:
评论

相关推荐

    cglib-3.2.7.jar

    其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)

    cglib.jar下载

    三、CGLIB的应用 广泛的被许多AOP的框架使用,例如Spring AOP和dynaop。Hibernate使用CGLIB来代理单端single-ended(多对一和一对一)关联。 四、CGLIB的API 1、Jar包: cglib-nodep-2.2.jar:使用nodep包不需要...

    cglib 和asm jar包

    jdk动态代理是由Java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。总的来说,反射机制在生成类的过程中比较高效,而asm在生成类之后的相关执行过程中比较高效(可以通过将asm生成的类进行缓存,...

    spring源码阅读所需jar spring-cglib-repack-3.2.8.jar 和spring-objenesis-repack-2.6.jar

    Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单...

    Spring基于Spring框架的Web应用演示(附带cglib工具进行动态代理)

    [Spring]基于Spring框架的Web应用演示(附带cglib工具进行动态代理)

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java ...JDK Proxy 和 CGLIB 的对比动态代理的实际应用 Spring AOP 变量 变量汇总实例变量 实例变量的特点全局变量 静态变量 静态变量的特点类变量 局部变量

    基于java的企业级应用开发:JDK动态代理.ppt

    * * * * JDK动态代理 JDK动态代理 JDK动态代理是通过java.lang.reflect.Proxy 类来实现的,我们可以调用Proxy类的newProxyInstance()方法来创建代理对象。对于使用业务接口的类,Spring默认会使用JDK动态代理来实现...

    用于存放java源码和Thinking of Java的资源.rar

    GlassFish:应用服务器,由Oracle赞助支持的Java EE参考实现。 Hudson :持续集成服务器,目前仍在活跃开发。 JavaServer Faces:Mojarra是JSF标准的一个开源实现,由Oracle开发。 JavaServer Pages:支持自定义标签...

    java开发常用jar包

    CGLIB是一个强大的高质量高性能的代码生成库,在运行时可以用它来扩展Java类 jfreechart-1.0.12.jar 使用java生成图表的工具 log4j-1.2.15.jar 通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、...

    SpringAOP的实现机制(底层原理)、应用场景等详解,模拟过程的实例

    通过学习它们的原理和实际应用,您将能够更好地理解和利用Spring AOP来提高您的应用程序的可维护性和可扩展性。 内容亮点: JDK动态代理: 我们将详细介绍JDK动态代理的概念和工作原理。您将了解如何使用Java的...

    Java设计模式及应用场景之《代理模式》

    文章目录一、代理模式定义二、代理模式的结构和说明三、代理模式的分类四、代理模式示例五、动态代理1、JDK动态代理JDK动态代理使用步骤...CGLIB动态代理注意事项六、三种代理方式的对比七、代理模式的应用场景及案例...

    Java 动态代理.md

    动态代理在 Java 中有着广泛的应用,比如 AOP 的实现原理、RPC远程调用、Java 注解对象获取、日志框架、全局性异常处理、事务处理等。 在了解动态代理前,我们需要先了解一下什么是代理模式。 代理模式 代理模式...

    精通Java EE整合应用案例 源代码19章 chat

    cglib-nodep-2.1_3.jar commons-beanutils-1.7.1-20061106.jar commons-collections-3.2.jar commons-configuration-1.2.jar commons-dbcp-1.2.1.jar commons-logging-1.0.4.jar commons-pool-1.3.jar dom4j-1.6.1....

    Java的学习之路,学习JavaEE以及框架时候的一些项目,结合博客和源码,让你受益匪浅,适合Java初学者和刚入门开始学框架者

    [Spring]基于Spring框架的Web应用演示(附带cglib工具进行动态代理) [Tomcat7.0]Tomcat7版本安装包 [UltraISO]制作U盘启动盘需要的 [log4j_jar]log4j的支持包 [myAutoLoginWeb]过滤器Filter学习-实现用户的自动...

    【动力节点】Java视频教程_SSH框架视频教程之Log4j

    本套Java视频教程详细讲解了代理设计模式的用法。分别讲述了静态代理、JDK动态代理,及CGLIB动态代理的用法,及应用场景对比。此套Java视频教程适合Java初学者,为以后的学习打下坚实基础。

    【源码:AopFk】如何使用 Java 编写一个简单的 AOP 框架

    如何定义 CGLIB 织入器类、AOP 框架类、代理对象管理器类。 如何使用 AOP 框架来定义切点、通知、将切点和通知应用到 AOP 框架中,以及如何创建代理对象的方法。 适用人群: Java 程序员 软件工程师 架构师

    《剑指offer》Java代理.pdf

    Java 代理 代理模式 静态代理与动态代理 常见的动态代理实现 JDK Proxy CGLIB JDK Proxy 和 CGLIB 的对比 动态代理的实际应用 Spring AOP

    Java 代理 代理模式 静态代理与动态代理 常见的动态代理实现 .md

    - 动态代理的实际应用 - Spring AOP 说在前面:今天我们来聊一聊 Java 中的代理,先来聊聊故事背景: 小明想购买法国某个牌子的香水送给女朋友,但是在国内没有货源售卖,亲自去法国又大费周章了,而小红现在...

    《MyEclipse 6 Java 开发中文教程》前10章

    第二章 开发第一个Java应用程序 46 2.1 介绍 46 2.2 手工编写,编译并运行Java程序 46 2.3 使用Eclipse/MyEclipse来编写,编译并运行Java程序 47 2.4小结 50 第三章 Eclipse 的基础概念,配置和使用 51 3.1界面布局 ...

Global site tag (gtag.js) - Google Analytics