`

cglib中的两个工具类BeanMap,BeanCopier

    博客分类:
  • JAVA
 
阅读更多

         这两天看了下cglib的一些源码,发现BeanMap和BeanCopier在工作中应该可以用到,虽然已经apache和spring的相关工具类可以用了,但是多一个工具类也不嫌多嘛,况且BeanCopier的速度会更快一些。

          1.BeanMap本身是实现了Map的接口,将对象转成Map很方便使用

          2.不同对象的属性的COPY

          

import net.sf.cglib.beans.BeanCopier;
import net.sf.cglib.beans.BeanMap;


public class Test {

	public static void main(String[] args) {
		Test t = new Test();
		User u = t.new User();
		u.setAge(25);
		u.setName("mike");
          BeanMap  m = BeanMap.create(u);
          System.out.println(m.get("name")+","+m.get("age"));
        
		Person p = t.new Person();
                BeanCopier b = BeanCopier.create(User.class, Person.class, false);
         b.copy(u, p, null);
         System.out.println(p.toString());
	}
	public class Person{
		private String name;
		@Override
		public String toString() {
			return "Person [name=" + name + ", age=" + age + "]";
		}
		private int age;
		
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public int getAge() {
			return age;
		}
		public void setAge(int age) {
			this.age = age;
		}
	}
	public class User{
		private String name;
		private int age;
		
		public User(){
			
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public int getAge() {
			return age;
		}
		public void setAge(int age) {
			this.age = age;
		}
	}

}

 

    结果:

    mike,25

    Person [name=mike, age=25]

  

   更多参考:

  http://czj4451.iteye.com/blog/1998750

  http://www.iteye.com/topic/799827

0
0
分享到:
评论

相关推荐

    开发工具 cglib-3.2.4

    开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4...

    Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier

    这篇文章将对比分析Apache BeanUtils、PropertyUtils、Spring BeanUtils以及Cglib BeanCopier这四个常用的Bean复制工具的性能和特点。 首先,Apache BeanUtils是Apache Commons项目的一部分,提供了一系列便捷的...

    Spring cglib 中文说明

    - **支持未实现接口的类:** JDK 动态代理要求代理对象必须实现一个或多个接口,而 CGLIB 则可以直接代理任何实现了非 `final` 方法的类。 - **高性能:** 由于它是通过字节码操作来实现方法的拦截,因此性能优于...

    cglib动态代理用到的两个包

    在CGLib动态代理机制中,主要有两个核心包: 1. **cglib** 包:这是CGLib的主要实现包,包含了用于创建代理对象的所有类和接口。当无法或者不想使用Java标准的JDK动态代理(只能代理接口实现类)时,CGLib可以生成...

    cglib动态生成java类

    CGLib,全称为Code Generation ...总的来说,CGLib是Java开发中一个不可或缺的工具,尤其在需要动态生成和修改类的场景下,它的高效和灵活使其成为首选。了解并熟练掌握CGLib,对于提升Java开发能力具有重要意义。

    cglib-2.2.2.jar(修订版)

    如果你遇到这个异常,可以尝试这个修改过的jar包 at net.sf.cglib.core.ReflectUtils.getMethodInfo(ReflectUtils.java:424) at net.sf.cglib.beans.BeanCopier$Generator.generateClass(BeanCopier.java:133) at...

    cglib动态代理

    总结起来,CGLib动态代理是Java开发中的一个重要工具,它通过字节码技术为不支持接口的类提供代理能力,广泛应用于AOP、测试等场景。了解并掌握CGLib,能够帮助开发者更好地理解和利用Java的动态性,提高代码的灵活...

    cglib必需的包

    在Java开发中,如果你需要用到动态代理或者需要在运行时扩展已有类的功能,CGlib会是一个很好的选择。下面我们将详细探讨CGlib以及它所需的依赖包。 首先,我们来看一下CGlib的核心组件——`cglib-nodep-2.1_3.jar`...

    Cglib3.3.0最新版jar包

    Cglib3.3.0是该库的最新版本,提供了两个jar包:`cglib-3.3.0.jar`和`cglib-nodep-3.3.0.jar`。 1. **Cglib**:Cglib是一个第三方库,全称为Code Generation Library。它允许开发者在运行时动态地创建子类或者增强...

    cglib2.2.jar

    这个压缩包包含两个版本的CGLIB库:`cglib2.2.jar` 和 `cglib-nodep-2.2.jar`。 `cglib2.2.jar` 是CGLIB的核心库,提供了对Java类进行动态代理和增强的功能。它通过字节码技术生成新的类,这些新类可以扩展或修改...

    cglib的动态代理需要的包

    这两个类用于控制生成的代理类的命名策略,避免与已有的类冲突。 5. `net.sf.cglib.beans.BeanMap`: 这是一个辅助类,可以将任何JavaBean对象转换为Map,方便操作。 使用CGlib创建动态代理的一般步骤如下: 1. ...

    cglib_cglib3.2_remain3gr_cglibjar包_cglib.jar_

    总的来说,CGLib作为一个强大的字节码生成库,广泛应用于AOP(面向切面编程)、ORM框架(如Hibernate)、测试工具(如Mockito)等领域,提供了对Java类的灵活扩展和控制。正确理解和使用CGLib,能极大地提升开发效率...

    cglib及其依赖包

    在Spring框架中,CGLib被用作AOP代理的一个重要组件,特别是在没有实现接口的类上创建代理对象时,Spring会默认使用CGLib。 CGLib的工作原理是基于ASM库,ASM是一个字节码操作和分析框架,它可以用来动态生成类或...

    CGLIB依赖jar包

    CGLIB,全称为Code Generation Library,是一个强大的高性能的代码生成库,它在Java世界里被广泛应用,尤其是在Spring框架中。CGLIB是基于ASM(一个底层的Java字节码操作和分析框架)来实现的,它允许开发者在运行时...

    CGLIB需要的asm-2.2.3.jar和cglib-nodep-2.2.jar

    在实际使用中,我们需要将ASM-2.2.3.jar和CGLIB-nodep-2.2.jar这两个库引入到项目中。如果使用Maven或Gradle构建工具,可以通过添加对应的依赖项来实现。对于非依赖版本的CGLIB,开发者需要注意可能存在的功能限制,...

    cglib的依赖包

    总结来说,CGlib是一个强大且灵活的Java代码生成库,它简化了字节码操作,为开发人员提供了动态创建类和方法的能力,尤其在实现动态代理和AOP场景中有着广泛的应用。理解并掌握CGlib的使用,对于提升Java开发效率和...

    cglib.jar下载

    CGLIB原理:动态生成一个要代理类的子类,子类重写要代理的类的所有不是final的方法。在子类中采用方法拦截的技术拦截所有父类方法的调用,顺势织入横切逻辑。它比使用java反射的JDK动态代理要快。 CGLIB底层:使用...

Global site tag (gtag.js) - Google Analytics