`
duantonghai
  • 浏览: 20353 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Cglib 入门

阅读更多
cglib 是一个很强大的动态字节增强库, 使用例子:

cglib 官网:http://cglib.sourceforge.net/howto.html

public class Dao {

public void update(){
System.out.println("update");
}

public void insert(){
System.out.println("insert");
}

public void delete(){
System.out.println("delete");
}

}




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

public class Proxy implements  MethodInterceptor{


public Object getObject(Class target){
Enhancer en=new Enhancer();
en.setSuperclass(target);
en.setCallback(this);
return en.create();
}

/**
* @param args
*/
public static void main(String[] args) {

Proxy proxy=new Proxy();
Dao dao=(Dao)proxy.getObject(Dao.class);
dao.delete();
}

public Object intercept(Object arg0, Method arg1, Object[] arg2,
MethodProxy arg3) throws Throwable {
   System.out.println("before");
Object obj=arg3.invoke(arg0, arg2);
   System.out.println("after");
return obj;
}

}

增加一个属性:
en.setStrategy(new DefaultGeneratorStrategy(){

@Override
protected ClassGenerator transform(ClassGenerator cg)
throws Exception {
AddPropertyTransformer add=new AddPropertyTransformer(new String[]{ "foo" },new Type[]{ Integer.TYPE });
return new TransformingClassGenerator(cg,add);

}

});
分享到:
评论

相关推荐

    CGLIB入门实例.doc

    CGLIB,全称为Code Generation Library,是一种代码生成库,主要用在Java应用程序中,尤其在需要进行动态代理或者运行时织入增强功能的场景。它底层基于ASM库,但为开发者提供了更友好的API,简化了对Java字节码的...

    spring framework入门(6):java中的动态代理(jdk和cglib)

    spring framework入门(6):java中的动态代理(jdk和cglib) 博客地址:https://blog.csdn.net/u010476739/article/details/76737460

    Hibernate入门jar包

    本压缩包提供的是Hibernate入门所需的jar包,包括了Hibernate的核心库以及与之配合使用的相关组件。让我们深入探讨一下这些jar包以及它们在Hibernate中的作用。 1. Hibernate核心库: - `hibernate-core.jar`:这...

    Spring从入门到精通全套教程.zip

    本套课程是Spring入门到精通教程,课程包括Spring IoC、Spring AOP(CGLib、JDK动态代理)、Spring整合MyBatis,Spring事务管理等内容。 通过本套课程的学习,你将掌握: 1、 IoC和依赖注入 2、 AOP的原理和实际...

    java基础入门之Hibernate 入门

    3. **CGLIB和ASM代理**:在无接口的情况下,Hibernate可能会用到这些动态代理技术进行懒加载。 4. **性能调优**:学习如何调整Hibernate配置以优化性能,如缓存策略、批处理等。 通过以上基础知识的学习,初学者...

    Spring 入门案例——AOP

    5. **自动代理(Auto Proxy)**:Spring AOP默认使用Java动态代理或CGLIB生成代理对象,以便在调用目标方法时插入通知。 案例中的"Spring_2_AOP"可能包含了以下内容: - 示例代码展示了如何定义一个切面,包括通知...

    Spring框架入门资料

    本入门资料旨在帮助初学者快速掌握Spring框架的基础知识和实践技巧。 首先,"Spring讲义-IDEA版.doc"和"Spring讲义.doc"是两份详细的教程文档,它们通常会涵盖Spring框架的基本概念、核心组件如IoC容器、AOP、Bean...

    AOP编程入门 Word版

    【AOP编程入门详解】 面向切面编程(Aspect Oriented Programming,简称AOP)是一种编程范式,旨在解决传统面向对象编程(OOP)中的一些问题,如代码重复、高耦合度等。AOP的核心思想是将关注点分离,即把系统中...

    hibernate3入门

    此外,还需要其他依赖库如`antlr`, `dom4j`, `CGLIB`, `asm`, `CommonsCollections`, `CommonsLogging`, `EHCache`以及`JavaTransactionAPI`(即`jta.jar`),这些依赖库确保Hibernate能够正常运行。 如果是在单机...

    最简单的SpringAOP入门案例

    5. **代理模式**:Spring AOP通过代理模式实现切面功能,有JDK动态代理和CGLIB代理两种方式,前者针对实现了接口的类,后者则用于未实现接口的类。 通过这个简单的案例,你应该对Spring AOP有了初步的理解。随着...

    Spring 2框架入门

    本资源是一份英文版的Spring 2框架入门教程,帮助初学者理解和掌握这个强大的框架。 Spring框架的核心特性包括依赖注入(Dependency Injection,DI)、面向切面编程(Aspect-Oriented Programming,AOP)以及大量的...

    Spring 入门大全和详细配置andAOP详解

    Spring通过动态代理(JDK Proxy或CGLIB)实现AOP,可以在不修改业务代码的情况下,对特定方法进行增强。 6. **Spring AOP详解** AOP的实现包括定义切点(Pointcut)、通知(Advice)、切面(Aspect)等概念。学习...

    spring AOP入门教程

    **Spring AOP 入门教程** 在编程领域,Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分,它为开发者提供了一种强大的方式来管理横切关注点,如日志、事务管理、安全性等...

    hibernate入门教程

    最小集合包括log4j.jar、jta.jar、dom4j.jar、libantlr.jar、cglib-full.jar、asm.jar、asm-attrs.jar、commons-collections.jar、commons-logging.jar、ehcache.jar和hibernate3.jar。这些库文件可以从Hibernate...

    spring入门小例子

    Spring支持两种类型的代理:JDK动态代理和CGLIB代理。这部分可能介绍了如何根据需求选择合适的代理类型,并配置相应的代理策略。 - **JoinPoint的理解** (`Spring_8_AOP_4_Configure_JoinPoint`) JoinPoint是AOP...

    Spring_Aop入门例子

    在本入门例子中,你将学习如何在Spring环境中设置并使用AOP。 首先,我们需要理解AOP的基本概念。在面向对象编程中,业务逻辑代码往往会被一些通用的、非核心的代码(如日志、事务)所穿插,这降低了代码的可读性...

    Spring 入门AOP材料

    1. **基于代理的AOP**:Spring默认使用JDK动态代理或CGLIB代理来创建目标对象的代理对象,代理对象在方法调用前后执行通知。 2. **基于注解的AOP**:通过在类或方法上添加注解来定义切面,更加简洁直观。 **AOP 的...

    Spring快速入门教程

    ### Spring快速入门教程知识点详解 #### 一、理论知识概览 **1. 依赖注入与控制反转** - **依赖注入(Dependency Injection, DI)**:在Spring框架中,依赖注入是一种设计模式,用于实现控制反转。它允许在运行...

    Spring框架入门教程

    ### Spring框架入门教程知识点详解 #### 一、Spring框架基础知识 **1. 依赖注入 (Dependency Injection, DI) 与 控制反转 (Inversion of Control, IoC)** - **依赖注入**: 在运行期间,由外部容器动态地将依赖...

Global site tag (gtag.js) - Google Analytics