如果在SpringMVC中嵌套Bean的所有属性都为空,则将其绑定到null

如果在SpringMVC中嵌套Bean的所有属性都为空,则将其绑定到null,spring,spring-mvc,spring-mvc-initbinders,Spring,Spring Mvc,Spring Mvc Initbinders,假设我有一个Account类,它有一个Person类的实例变量 public class Account { private String accountId; private Person person; // getters and setters } public class Person { private String name; // getters and setters } 现在,如果表单帖子正文包含以下参数: account.accountId=1

假设我有一个Account类,它有一个Person类的实例变量

public class Account {
  private String accountId;
  private Person person;

  // getters and setters
}


public class Person {
  private String name;

  // getters and setters
}
现在,如果表单帖子正文包含以下参数:

account.accountId=123&account.person.name=

Spring将实例化一个新的Person,即使它的所有属性都为空(或者为null,因为我正在使用@ControllerAdvice和@InitBinder,其中我正在为String设置StringTrimmerEditor)。有没有一种方法可以指示Spring不要创建Person实例呢?

嗯,我认为没有,因为将对象注入对象是依赖注入原则。对象的松散耦合。如果您不想创建Person对象,请不要为其提供setter。但我不确定spring是否允许使用注释