Spring Data Binding

一) BeanWrapper
BeanWrapper这个类一般不会被Spring的使用者直接调用,而是使用DataBinder和BeanFactory这两个类是间接被调用的。但是知道BeanWrapper的使用方式对于理解Spring的数据绑定机制还是十分用益的。下面我们就来看个BeanWrapper被直接调用的例子:
Java代码 复制代码 收藏代码
  1. //首先是两个对象类Company Employee
  2. public class Company {
  3. private String name;
  4. private Employee managingDirector;
  5. public String getName() {
  6. return this.name;
  7. }
  8. public void setName(String name) {
  9. this.name = name;
  10. }
  11. public Employee getManagingDirector() {
  12. return this.managingDirector;
  13. }
  14. public void setManagingDirector(Employee managingDirector) {
  15. this.managingDirector = managingDirector;
  16. }
  17. }
  18. public class Employee {
  19. private String name;
  20. private float salary;
  21. public String getName() {
  22. return this.name;
  23. }
  24. public void setName(String name) {
  25. this.name = name;
  26. }
  27. public float getSalary() {
  28. return salary;
  29. }
  30. public void setSalary(float salary) {
  31. this.salary = salary;
  32. }
  33. }
  34. BeanWrapper company = BeanWrapperImpl(new Company());
  35. // setting the company name..
  36. company.setPropertyValue("name", "Some Company Inc.");
  37. // ... can also be done like this:
  38. PropertyValue value = new PropertyValue("name", "Some Company Inc.");
  39. company.setPropertyValue(value);
  40. // ok, let's create the director and tie it to the company:
  41. BeanWrapper jim = BeanWrapperImpl(new Employee());
  42. jim.setPropertyValue("name", "Jim Stravinsky");
  43. company.setPropertyValue("managingDirector", jim.getWrappedInstance());
  44. // retrieving the salary of the managingDirector through the company
  45. Float salary = (Float) company.getPropertyValue("managingDirector.salary");  
原文地址:https://www.cnblogs.com/bjanzhuo/p/3575922.html