package com.haogrgr.test.util; import org.springframework.beans.BeanWrapper; import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.PropertyAccessorFactory; /** * Spring的BeanWrapper可以方便的设置属性,对象图,PropertyEditor支持 * * @since 2015年3月31日 下午4:31:52 * @author https://github.com/stillotherguy/javaopensource/blob/master/src/main/java/com/rabbit/spring/FieldAccessorTest.java */ public class SpringBeanWrapper { public static void main(String[] args) { Department department = new Department(); department.setName("test"); Department parent = new Department(); parent.setName("parent"); department.setParent(parent); BeanWrapper wrapper = PropertyAccessorFactory.forBeanPropertyAccess(department); wrapper.setPropertyValue("name", "test1"); wrapper.setPropertyValue("parent.name", "parent1"); System.out.println(department.getName()); System.out.println(department.getParent().getName()); //======================================== Department dept = new Department(); DirectFieldAccessor accessor = new DirectFieldAccessor(dept); accessor.setPropertyValue("level", 5); System.out.println(dept.getLevel()); } public static class Department { private Department parent; private String name; private int level; public Department getParent() { return parent; } public void setParent(Department parent) { this.parent = parent; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getLevel() { return level; } } }